2015-05-25 74 views
1

我正在使用庫(https://qkit.codeplex.com/)在我的應用上實現JumpList,並且希望覆蓋組頭元素的默認邊距。該保證金在庫代碼定義爲一個資源字典中的資源:Windows Phone 8.1 XAML - 覆蓋ResourceDictionary條目

<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> 

回答

1

簡短的回答 - 你不能。

控件的作者決定這些值不是其公共API的一部分。如果他們願意,他們可以公開他們控制的DependencyProperty,你可以從外面改變。

最簡單的解決方法 - 克隆組件的源代碼,將QKit項目添加到您的解決方案中,然後根據需要更改QKit \ Themes \ generic.xaml。

如果您不想這樣做,您可以將generic.xaml複製到例如qkit.xaml,然後改變JumpListHeaderItemMargin值,然後將merge qkit.xaml更改爲app.xaml或使用該控件的頁面上的資源。這種方法不會使用DLL中的generic.xaml,因爲控件的本地定義樣式將覆蓋DLL的generic.xaml中的內容。