我已经做了一段时间并且遇到了一个我无法解决的驼峰。
我使用的自定义样式适用于某些元素,而不适用于其他元素。例如,它适用于字体,甚至可以格式化按钮字体,当我只规定了TextBlock字体时。
它将忽略的大多数其他设置,例如panel,stackpanel。 无奈之下,我设置了stackpanel和panel以及NavigationWindow和Pages。我尝试将设置更改为许多不同的元素以进行测试。
此外,一些代码完成将显示其中一些的选项,而其他代码则不会。这似乎与呈现的内容和不呈现的内容无关。
我怀疑我错过了一个导入。 任何帮助表示赞赏。
APP XAML
<Application x:Class="My.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" StartupUri="MainWindow.xaml">
<Application.Resources>
<Style x:Key="MyWindowStyle">
<Setter Property="Panel.Background" Value="Chocolate" />
<Setter Property="StackPanel.Background" Value="Chocolate" />
<Setter Property="StackPanel.HorizontalAlignment" Value="Stretch" />
<Setter Property="TextBlock.FontWeight" Value="Bold" />
<Setter Property="TextBlock.FontSize" Value="20" />
<Setter Property="Button.Background" Value="White" /> .. ETC
PAGE XAML
<Page x:Class="My.HomePage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" Style="{StaticResource MyWindowStyle}"
mc:Ignorable="d" Title="HomePage">
MAINWINDOW XAML
<NavigationWindow x:Class="My.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="My App" Height="Auto" Source="HomePage.xaml"
Style="{StaticResource MyWindowStyle}" WindowState="Maximized"></NavigationWindow>
答案 0 :(得分:2)
我认为问题是由不同UI元素的混合样式引起的。您应该使用样式中的TextBox
属性为StackPanel
es,TargetType=
等定义单独的样式。
此外,根据我的经验,为Window
设置样式(没有Page
的体验)通常不起作用。我恢复在Window
本身设置其属性。