我有一個包含一個按鈕用戶控件:反轉繼承
<Button Content="Button"/>
和樣式:
<Style TargetType="Button">
<Setter Property="Background" Value="Blue"/>
</Style>
父窗口(或其他用戶控件)可以設置另一個更一般風格:
<Style TargetType="Button">
<Setter Property="Background" Value="Red"/>
</Style>
結果是(很明顯),父按鈕將有更多的一般風格(紅色)和我的你ser控制將具有更具體風格的按鈕(藍色)。
我不知道如何反轉這種行爲,以達到類似的設置在我的自定義用戶控件的默認風格,可以在家長控制或窗口,然後根據需要重寫?
的關鍵是,默認樣式首先被定義在自定義用戶控件,它是其父重寫全自動。這就是我稱之爲倒置的方式。
解決方案的假想例子maight如下所示:
<Style TargetType="Button" StylePriority="Default">
<Setter Property="Background" Value="Blue"/>
</Style>
的StylePriority
可能表明,如果有該按鈕定義任何其他樣式,則默認樣式應適用於它。
如果你想在父控制中使用默認樣式,爲什麼還要在'usercontrol'中再次定義另一個樣式呢? – Bolu
@Bolu:編輯以更好地理解。我想在用戶控件中定義默認樣式,但是我希望能夠在父窗口中覆蓋它。讓我們說:藍色按鈕作爲在自定義控件中定義的defult。覆蓋父窗口中的紅色按鈕。 –
我不是100%確定,但我不認爲有一個簡單的方法來做你想做的事情就像反轉VisualTree :) – WiiMaxx