C# Windows Phone 8.1 XAML-覆盖ResourceDictionary条目

C# Windows Phone 8.1 XAML-覆盖ResourceDictionary条目,c#,xaml,windows-phone,windows-phone-8.1,C#,Xaml,Windows Phone,Windows Phone 8.1,我正在使用一个库()在我的应用程序上实现一个跳转列表,我希望覆盖组标题元素的默认边距。此边距在库代码上定义为资源字典中的资源: 19,0,0,9.5 但是,如何覆盖该键的值?我已经尝试在我的应用程序上的库的JumpList元素下的资源字典中直接设置它,但它不起作用: <q:AlphaJumpList Name="lineJumpList"> <q:AlphaJumpList.Resources> <Thickness x:Key="JumpL

我正在使用一个库()在我的应用程序上实现一个跳转列表,我希望覆盖组标题元素的默认边距。此边距在库代码上定义为资源字典中的资源:

19,0,0,9.5

但是,如何覆盖该键的值?我已经尝试在我的应用程序上的库的JumpList元素下的资源字典中直接设置它,但它不起作用:

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

0,0,0,9.5
...

简短回答-你不能

控件的作者决定这些值不是他们的公共API的一部分。如果他们愿意,他们可以公开一个依赖于他们控制的属性,您可以从外部更改该属性

最简单的解决方法是克隆组件的源代码,将QKit项目添加到解决方案中,然后随意更改QKit\Themes\generic.xaml

如果不想这样做,可以将generic.xaml复制到项目中的例如qkit.xaml中,然后随意更改JumpListHeaderItemArgin值,然后将其复制到app.xaml或使用该控件的页面上的资源中。这样就不会使用DLL中的generic.xaml,因为控件的本地定义样式将覆盖DLL的generic.xaml中的样式