在编辑自定义控件的模板副本时,未获取ThemeDictionaries中定义的静态资源

时间:2018-02-01 12:11:02

标签: uwp uwp-xaml

在编辑自定义控件的模板副本时,未获取ThemeDictionaries中定义的静态资源。

这是行为还是问题?

在我的场景中,我想从ThemeDictionaries中获取StaticResource。

任何解决方法是否满足我的要求?

注意:我使用ThemeDictionaries根据Highcontrast,light和默认主题更改控件的颜色

sample

此致 Priyanga B

1 个答案:

答案 0 :(得分:1)

解决此问题的一种方法是直接将'ThemeDictionaries'放在主项目的App.xaml中。例如:

<Application
x:Class="CustomControlUWP.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:CustomControlUWP"
xmlns:Input="using:CustomControl1"
RequestedTheme="Light">
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.ThemeDictionaries>
            <ResourceDictionary x:Key="Light">
                <SolidColorBrush x:Key="Backcolor" Color="Black"/>
            </ResourceDictionary>
            <ResourceDictionary x:Key="Default">
                <SolidColorBrush x:Key="Backcolor" Color="Pink"/>
            </ResourceDictionary>
            <ResourceDictionary x:Key="HighContrast">
                <SolidColorBrush x:Key="Backcolor" Color="Red"/>
            </ResourceDictionary>
        </ResourceDictionary.ThemeDictionaries>
    </ResourceDictionary>
</Application.Resources>

另一种方法是在类库中的单独xaml文件中定义ThemeDictionaries,在主项目的App.xaml中,您可以像这个线程一样添加对资源字典的引用:Linking ThemeDictionaries in Library Project