为了帮助我的WPF应用程序有类似的感觉,我已经开始在应用程序级别使用样式:
<Application x:Class="MyApplication.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 TargetType="Button">
<Setter Property="Margin" Value="10"/>
<Setter Property="Padding" Value="5"/>
<Setter Property="MinWidth" Value="60"/>
</Style>
<Style TargetType="TextBox">
<Setter Property="Margin" Value="10"/>
<Setter Property="Padding" Value="5"/>
<Setter Property="MinWidth" Value="60"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<Style TargetType="TextBlock">
<Setter Property="Margin" Value="10"/>
<Setter Property="Padding" Value="5"/>
<Setter Property="MinWidth" Value="60"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</Application.Resources>
现在这对我的大多数控件来说都很好用,但是我想更深入一点,为标题添加特定的样式类型。从每个窗口我都做到了:
<Window x:Class="myApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="150" Width="300">
<Window.Resources>
<Style x:Key="HeaderStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="Gray" />
<Setter Property="FontSize" Value="24" />
</Style>
</Window.Resources>
<StackPanel>
<TextBlock Style="{StaticResource HeaderStyle}">Header 1</TextBlock>
<TextBlock >Some content</TextBlock>
</StackPanel>
如何从App.xaml执行此操作?如果我想更改格式,请不要触摸每个窗口。
我觉得我首先要在窗口中添加相同的Style x:Key到App。然后将其添加到窗口
xmlns:app="clr-namespace:myApp"
如果这是对的,我不知道从哪里开始。这是我的一个镜头,黑暗试图让它工作
<TextBlock Style="{x:Type app:HeaderTextBlock}">Header 1</TextBlock>
感谢您的任何建议。
答案 0 :(得分:1)
你在这里遇到的问题:
<TextBlock Style="{x:Type app:HeaderTextBlock}">Header 1</TextBlock>
是您尝试添加对App.xaml的引用,但您不必这样做。
您可以使用此代码
<TextBlock Style="{StaticResource HeaderStyle}">Header 1</TextBlock>