我有一個使用 MahApps Metro 作為 UI 主題的 WPF 應用程式。我還需要使用樣式觸發器,以便我可以根據屬性適當地確定控制元件是否可見。觸發器有效,但具有洗掉主題的副作用。所以現在它看起來像一個默認的 WPF unthemed CheckBox。有什么辦法可以保留 MahApps Metro 主題CheckBox?

uj5u.com熱心網友回復:
指定樣式時,會覆寫默認樣式或之前應用的任何樣式。如果要擴展樣式,則必須使用BasedOn屬性指定基本樣式。
樣式可以通過此屬性基于其他樣式。使用此屬性時,新樣式將繼承未在新樣式中明確重新定義的原始樣式的值。
指定控制元件型別以使您的樣式基于控制元件的隱式樣式。
<Style TargetType="{x:Type CheckBox}" BasedOn="{StaticResource {x:Type CheckBox}}"> <!-- ...your setters and triggers. --> </Style>指定要作為樣式基礎的樣式的鍵。
<Style TargetType="{x:Type CheckBox}" BasedOn="{StaticResource MyCheckBoxBaseStyle}"> <!-- ...your setters and triggers. --> </Style>MahApps 中的命名樣式
CheckBox可以在 GitHub 上找到。
請注意,盡管您的Visibility觸發器應該可以作業,但已在樣式的控制元件模板中定義的其他觸發器CheckBox優先,您將無法以自己的樣式重新定義它們。如果您遇到這種情況,您必須將相應的樣式從 GitHub 復制到您的專案中,并根據您的要求進行調整。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/440915.html
標籤:wpf xml mahapps.metro
下一篇:使用遞回函式傳遞結構的指標
