我在Windows中添加了以下样式。资源
<Window.Resources>
...
<!--A Style that extends the previous TextBlock Style-->
<!--This is a "named style" with an x:Key of TitleText-->
<Style BasedOn="{StaticResource {x:Type TextBlock}}"
TargetType="TextBlock"
x:Key="TitleText">
<Setter Property="FontSize" Value="26"/>
<Setter Property="Foreground">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<LinearGradientBrush.GradientStops>
<GradientStop Offset="0.0" Color="#90DDDD" />
<GradientStop Offset="1.0" Color="#5BFFFF" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
...
</Window.Resources>
我的xaml代码中有很多这样的样式,我想将每个组件样式保存到一个额外的文件(而不是外部文件)中..例如,与TextBlocks相关的所有样式都应该在名为TextBlockStyles.xaml
的文件中
在wpf中我将如何做这件事?
如何链接项目中的样式?
先谢了
5条答案
按热度按时间eiee3dmh1#
使用合并的资源字典
在您的app.xaml中,您可以使用
或直接添加到UserControl中
如果档案位于相同的组件和项目的根目录中,您可以将
Source="..."
缩短为Source="TextBlockStyles.xaml"
,或者如果您将资源字典放在文件夹Styles
中,则可以缩短为Source="Styles\TextBlockStyles.xaml"
。1bqhqjot2#
用例:您有一个名为
MyView.xaml
的用户控件,其中包含一个按钮。您希望使用外部XAML文件设置按钮的样式。在
MyView.xaml
中:在
MyButton.xaml
中:回到
MyView.xaml
(“其余控件”):06odsfpq3#
在解决方案资源管理器中右键单击项目选择添加然后单击资源字典...选择名称并添加到项目中打开App.xaml将此代码添加到Application标记
在YourStyle.xaml中:
lx0bsm1f4#
你正在寻找动态资源。最好的方法是在resources. application或者控制页面上加载和标记字典。这里有一个很好的例子。
http://blogs.msdn.com/b/wpfsdk/archive/2007/06/08/defining-and-using-shared-resources-in-a-custom-control-library.aspx
添加(Smyresourcedictionary);
cwxwcias5#
只需转到您的窗口(例如:
MaindWindow.xaml
),其中您希望包含外部文件中的资源,并使用MergedDictionaries原则引用该文件:从上面的
Merged/BrushResources.xaml
是资源文件的位置,它位于名为Merged
的文件夹下。现在,如果您想知道外部文件中的声明语法应该是什么,请检查以下内容:
如果你想让资源在所有应用程序中可用(在所有窗口中可见),那么在
App.xaml
资源部分声明。