繁体   English   中英

通过代码将MergedDictionaries添加到样式

[英]Adding MergedDictionaries to styles via code

我在资源文件中有此style

<ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Colors.xaml"/>
            </ResourceDictionary.MergedDictionaries>
            <Style TargetType="TextBox" x:Key="StandardTextBox"/>
                <Setter Property="Foreground" Value="{StaticResource Color1}"/>
            </Style>
</ResourceDictionary>

(Colors.xaml包含我的brushes

我的代码使用style

ResourceDictionary TetxboxStyles = new ResourceDictionary();
TetxboxStyles.Source = (new Uri("TextboxStyles.xaml", UriKind.RelativeOrAbsolute));
Resources.MergedDictionaries.Add(TetxboxStyles);
tb_input.Style = (Style)Find("StandardTextBox");

这没有问题,但是当我通过代码而不是在TextboxStyles-File中动态添加Colors-Resource时,它不起作用:

ResourceDictionary TetxboxStyles = new ResourceDictionary();
TetxboxStyles.Source = (new Uri("TextboxStyles.xaml", UriKind.RelativeOrAbsolute));

//Adding the Colors.xaml Resource
ResourceDictionary Colors = new ResourceDictionary();
brushes.Source = (new Uri("Colors.xaml", UriKind.RelativeOrAbsolute));
TetxboxStyles.MergedDictionaries.Add(Colors);

Resources.MergedDictionaries.Add(TetxboxStyles);
tb_input.Style = (Style)Find("StandardTextBox");

输出错误:

System.Windows.Markup.XamlParseException

"{DependencyProperty.UnsetValue}"

我用DynamicResource替换了StaticResource ,它可以正常工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM