0

メイン ウィンドウが 1 つだけの WPF アプリケーションと、WPF ページを開くために使用する IFrame があります。ボタンをクリックすると、いくつかのデータを含むグリッドを持つウィンドウを開くページがあります。

その「ポップアップ」ウィンドウからページに日付を表​​示するにはどうすればよいですか?

ウィンドウから親要素を取得しようとしましたが、何もありません。

もう一度よろしくお願いします!

4

1 に答える 1

0

あなたが何を望んでいるのかよくわかりませんが、試してみましょう。

私のメインウィンドウ XAML:

<Window x:Class="Teste.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1*"/>
            <ColumnDefinition Width="1*"/>
            <ColumnDefinition Width="1*"/>
        </Grid.ColumnDefinitions>
        <Button Content="New Window" Margin="0,220" Grid.Column="1" Grid.ColumnSpan="1" Click="Button_Click" />
    </Grid>
</Window>

MainWindow.xaml.cs の再開:

namespace Teste
{
    public partial class MainWindow : Window
    {
         public MainWindow()
         {
            InitializeComponent();
         }

         private void Button_Click(object sender, RoutedEventArgs e)
         {
           myWindow newWindow = new myWindow();
           var child = (TextBlock)newWindow.FindName("txtBlock");

           MessageBox.Show(child.Text);
         }
    }
}

myWindow.xaml:

<Window x:Class="Teste.myWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="myWindow" Height="300" Width="300" SizeToContent="WidthAndHeight">
    <StackPanel>
        <TextBlock x:Name="txtBlock" Text="Some Text" Margin="100" />
    </StackPanel>
</Window>

さて、それを念頭に置いて:

  1. 私のプロジェクトには 2 つのウィンドウ (MainWindow と myWindow) があります。
  2. MainWindow Button イベントは、myWindow をインスタンス化します。
  3. 変数(My TextBlock)childという名前の要素を検索します。txtBlock
  4. TextBlock を取得したいことがわかっているのでchild、要素も としてキャストするTextBlockため、コードは次のようになります。var child = (TextBlock)newWindow.FindName("txtBlock");
  5. TextBlock の「インスタンス」ができたので、そのプロパティを使用できます。この場合、テスト目的でのみ、Textプロパティを使用し、その内容をMessageBoxコードで表示します。MessageBox.Show(child.Text);


それがあなたが探しているものでなくても、ヒントを与えることができます。ここでのコツはキャストです

幸運を!

于 2013-10-03T03:42:28.813 に答える