WPF Binding a visual brush's visual to a different window

后端 未结 1 889
轻奢々
轻奢々 2021-01-05 23:28

I need a rectangle in my settings window to display a scaled down version of of the main window. This is the non-working code that I have right now. Is it possible to do wha

相关标签:
1条回答
  • 2021-01-06 00:12

    Yes, but not in pure XAML and not using ElementName. Instead, you'll need to pass a reference to the main window into your settings window. You can then bind the VisualBrush.Visual to that reference.

    As a simplified example, when creating your settings window, you could set its DataContext to the main window:

    // MainWindow.xaml.cs
    SettingsWindow w = new SettingsWindow { DataContext = this };
    w.Show();
    

    Then the SettingsWindow you could access the MainWindow as {Binding} (because the MainWindow is now the SettingsWindow's DataContext, and {Binding} refers to the DataContext):

    <!-- SettingsWindow.xaml -->
    <Rectangle.Fill>
      <VisualBrush Stretch="Uniform" Visual="{Binding}" />
    </Rectangle.Fill>
    

    In practice you probably won't want to pass the main window object as the DataContext because that's too blunt an instrument, but hopefully this gives you the idea.

    0 讨论(0)
提交回复
热议问题