Windows Phone 8.1 XAML -重写资源字典条目

本文关键字:资源 字典 重写 Phone XAML Windows | 更新日期: 2023-09-27 17:50:39

我正在使用一个库(https://qkit.codeplex.com/)来实现我的应用程序上的JumpList,我希望覆盖其默认的组头元素的边距。此边距在库代码中定义为资源字典中的资源:

<Thickness x:Key="JumpListHeaderItemMargin">19,0,0,9.5</Thickness>

我如何重写这个键的值?我已经尝试将其直接设置在我的应用程序库的JumpList元素下的资源字典中,但它不起作用:

<q:AlphaJumpList Name="lineJumpList">
    <q:AlphaJumpList.Resources>
        <Thickness x:Key="JumpListHeaderItemMargin">0,0,0,9.5</Thickness>
    </q:AlphaJumpList.Resources>
    ...
</q:AlphaJumpList>

Windows Phone 8.1 XAML -重写资源字典条目

简短的回答——你不能。

控件的作者决定这些值不是他们的公共API的一部分。如果他们愿意,他们可以在他们的控件上公开一个DependencyProperty,你可以从外部修改它。

最简单的解决方法-克隆组件的源代码,将QKit项目添加到您的解决方案中,并更改QKit'Themes'generic。

如果你不想这样做,你可以复制generic。Xaml转换为qkit。在你的项目中,然后改变JumpListHeaderItemMargin值,但你喜欢,然后合并qkit。将Xaml放入app.xaml或使用该控件的页面上的资源中。这种方式是通用的。DLL中的xaml将不会被使用,因为控件的本地定义样式将覆盖DLL中的generic.xaml.