首页 > 解决方案 > 如何将网格资源移动到主题文件 (UWP)

问题描述

我有一个像这样的网格

                <Grid>
                    <Grid.Resources>
                        <Style TargetType="TextBlock">
                            <Setter Property="FontSize" Value="12px"/>
                            <Setter Property="FontWeight" Value="SemiBold"/>
                            <Setter Property="FontStretch" Value="Normal"/>
                            <Setter Property="FontStyle" Value="Normal"/>
                            <Setter Property="Foreground" Value="#5D58F7"/>
                        </Style>
                    </Grid.Resources>
                    <uctrl:sr ></uctrl:sr>
                </Grid>

哪个工作正常。现在我想将这些样式移动到我的主题文件中。为了实现这一点,我做了这样的事情。

里面的 theme.xaml

    <Style x:Key="mystyleinsidethemefile" TargetType="TextBlock">
    <Setter Property="FontSize" Value="12px"/>
    <Setter Property="FontWeight" Value="SemiBold"/>
    <Setter Property="FontStretch" Value="Normal"/>
    <Setter Property="FontStyle" Value="Normal"/>
    <Setter Property="Foreground" Value="#5D58F7"/>
   </Style>

在我的页面内

                    <Grid Height="36" >
                    <Grid.Resources>
                        <Style TargetType="TextBlock">
                            <Setter Property="Style" Value="{StaticResource mystyleinsidethemefile}"/>
                        </Style>
                    </Grid.Resources>
                    <uctrl:sr ></uctrl:sr>
                </Grid>

对我来说一切都很好,但这会引发错误,如图所示 在此处输入图像描述

我该如何解决这个问题?

标签: c#.netxamluwp

解决方案


最小的答案

在 Style.BasedOn 中设置 mystyleinsidethemefile,也许可以让它工作。

<Grid Height="36">
    <Grid.Resources>
        <Style TargetType="TextBlock" BasedOn="{StaticResource mystyleinsidethemefile}">

        </Style>
    </Grid.Resources>
    <uctrl:sr ></uctrl:sr>
</Grid>

推荐阅读