C# 如果在应用程序资源中设置,为什么网格背景颜色覆盖整个窗口?
我想知道为什么在应用程序资源中设置网格的背景颜色会导致整个窗口被网格背景覆盖,即使我并没有在XAML主窗口文件中指定网格面板 MainWindow.xaml:C# 如果在应用程序资源中设置,为什么网格背景颜色覆盖整个窗口?,c#,.net,wpf,xaml,background,C#,.net,Wpf,Xaml,Background,我想知道为什么在应用程序资源中设置网格的背景颜色会导致整个窗口被网格背景覆盖,即使我并没有在XAML主窗口文件中指定网格面板 MainWindow.xaml: App.xaml: 相反,我得到的是: 问题 为什么会这样?是否有一个隐藏的、始终存在的网格覆盖整个窗口并被我的样式规则包括在内?如果是这样的话,为什么会这样做?为什么会以一秒钟的可观察延迟应用它?这是可视化树设计工具在调试时用于选择可视化树中元素的网格。您可以使用事件设置器、单击网格或运行应用程序(而不是在调试模式下)来验证这一
App.xaml:
相反,我得到的是:
问题
为什么会这样?是否有一个隐藏的、始终存在的网格覆盖整个窗口并被我的样式规则包括在内?如果是这样的话,为什么会这样做?为什么会以一秒钟的可观察延迟应用它?这是可视化树设计工具在调试时用于选择可视化树中元素的网格。您可以使用事件设置器、单击网格或运行应用程序(而不是在调试模式下)来验证这一点
<Style TargetType="Grid">
<Setter Property="Background" Value="Red" />
<EventSetter Event="PreviewMouseDown" Handler="Grid_PreviewMouseDown"/>
<!--Uncomment the line below to see that button seems to be hidden under the grid.-->
<!--<Setter Property="Opacity" Value="0.5" />-->
</Style>
public partial class App : Application
{
private void Grid_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
MessageBox.Show(VisualTreeHelper.GetParent(sender as Grid).ToString());
}
}