如何加载资源,例如来自同一项目中另一个文件夹的样式资源?有任何想法吗? 我的directory看起来像这样,我想在ButtonTest.xaml中使用ButtonStyles.xaml。在设计模式下,在启动应用程序之前。使用App.xaml中的资源可以在运行时完美运行。
答案 0 :(得分:1)
在您想要的文件夹中的ResourceDictionary中添加自定义样式 - 在我的例子中,文件是/Resources/Themes/Button.xaml。给风格一把钥匙:
<Style x:Key="MyButtonStyle" TargetType="{x:Type Button}">
// define your style, for example
<Setter Property="SnapsToDevicePixels" Value="true"/>
<Style>
如果您想添加多个样式文件,最好合并您的ResourceDictionaries, 例如,在一个名为Generic.xaml的文件中:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/PROJECT_NAME;component/Resources/Themes/Button.xaml"/>
<ResourceDictionary Source="pack://application:,,,/PROJECT_NAME;component/[path and file name]"/>
// add all your resourcedictionaries
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
如果要使用样式,请将合并的ResourceDictionary添加为资源。例如在UserControl中, 像这样添加:
<UserControl.Resources>
<inf:DesignTimeResourceDictionary Source="pack://application:,,,/PROJECT_NAME;component/Resources/Themes/Generic.xaml"/>
</UserControl.Resources>
然后,当您添加按钮时,您可以使用您提供的密钥将该样式用作动态资源。
<Button Style="{DynamicResource MyButtonStyle}"/>
确保更改所有名称以匹配您的项目和文件名。