繁体   English   中英

从我的UserControl访问主页

[英]Accessing the MainPage from my UserControl

在MyUserControl.xaml.cs中

 private void StartVideos()
        {

                    foreach (Uri uri in _videos)
                        _playlist.Enqueue(uri);

                    fv.Visibility = Visibility.Collapsed;

                    fvWelcome.Visibility = Visibility.Collapsed;



                    mediaPlayer.Visibility = Visibility.Visible;

                    mediaPlayer.Source = _playlist.Dequeue();

                    mediaPlayer.Play();

          }

在MainPage.xaml中

 <RelativePanel x:Name="WelcomeRelativePanel" Background="#FF1F4E79" >
            <TextBox x:Name="WelcomeText"
                                 RelativePanel.AlignLeftWithPanel="True"
                                 Margin="145,0,0,0"
                                 Foreground="White"
                                 FontFamily="Segoe UI"
                                 IsReadOnly="True"
                                 BorderBrush="#FF1F4E79" 
                                 BorderThickness="0" 
                                 HorizontalAlignment="Center" FontSize="84"
                                 TextWrapping="Wrap" AcceptsReturn="True" 
                                 Background="#FF1F4E79" 

                                />

我该如何通过UserControl与MainPage进行交互

private void StartVideos()
 {

    .....
    WelcomeRelativePanel.Visibility =  Visibility.Collapsed;
 }

我有一个在App.Xaml.cs中使用静态变量的想法,任何人都可以提供示例或其他想法吗?

我有这样的问题,但是我需要从用户控件更改TextBlock文本。

<Page
  x:Class="MyProject.MainPage">
  <Grid>
    <TextBlock x:Name="myTextBlock" Text="" />
    <MyUserControl x:Name = "userControl" />
  </Grid>
</Page>

我做了这样的事情,它的工作原理。

在MyUserControl中

private string myString;
public delegate void MyEventHandler(string a);
public event MyEventHandler MyPropertyChanged;

public MyUserControl()
{
    this.MyPropertyChanged+= new MyEventHandler(HandlePropertyChanging);
}

private void HandleCreditsChanging(string a)
{
    a = myString;
}

在主页中:

public MainPage()
{
    myUserControl.MyPropertyChanged += MyUserControl_MyPropertyChanged;
}

private void MyUserControl_MyPropertyChanged(string a)
{
    myTextBlock.Text = a;
}

我相信它也会为您服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM