有沒有辦法在MetroWindow中更改按鈕前景? 我甚至試圖重寫IronicallyNamedChromelessButtonStyle,但前景色仍然相同。如何更改MahApps中所有命令按鈕的前景色
編輯: 的按鈕都在窗欄(如關閉,最小化,最大化)。
有沒有辦法在MetroWindow中更改按鈕前景? 我甚至試圖重寫IronicallyNamedChromelessButtonStyle,但前景色仍然相同。如何更改MahApps中所有命令按鈕的前景色
編輯: 的按鈕都在窗欄(如關閉,最小化,最大化)。
您可以使用隱式樣式。隱式的風格是,沒有一個「鑰匙」,例如,如果你在Application.Resources添加這種風格會影響您的應用程序的所有按鈕的樣式:
<Application.Resources>
<Style TargetType="Button">
<Setter Property="Foreground" Value="Blue"/>
</Style>
</Application.Resources>
你可以將它設置爲例如,一個網格的資源,它只會影響該網格內的按鈕。
謝謝,但這也不起作用。我只是編輯澄清問題,因爲這些按鈕是某種「特殊」的。 – user3049133
@ user3049133這些「按鈕」的類型是什麼? – Rui
是那些AppBarButton?如果這樣設置TargetType =「AppBarButton」,並在Page.Resources中設置樣式 – Rui
深深潛入MahAppscodе後......這裏是一個負責的按鈕來源: https://github.com/MahApps/MahApps.Metro/blob/master/MahApps.Metro/Themes/MetroWindow.xaml 如果你仔細觀察,你會發現,每一個款式都有與硬覆蓋風格前景觸發器編碼的「白」:
<Style.Triggers>
<DataTrigger Binding="{Binding ShowTitleBar, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Controls:MetroWindow}}}"
Value="True">
<Setter Property="Foreground"
Value="White" />
</DataTrigger>
<DataTrigger Binding="{Binding ShowTitleBar, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Controls:MetroWindow}}}"
Value="False">
<Setter Property="Background"
Value="Transparent" />
</DataTrigger>
</Style.Triggers>
我的解決辦法是覆蓋所有必要的風格觸發:
<Style TargetType="{x:Type MahControls:WindowButtonCommands}">
<Style.Triggers>
<DataTrigger Binding="{Binding ShowTitleBar, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type MahControls:MetroWindow}}}"
Value="True">
<Setter Property="Foreground"
Value="{StaticResource IdealForegroundColorBrush}" />
</DataTrigger>
</Style.Triggers>
</Style>
希望這將幫助任何人在我的情況。 特別感謝@Rui和@Sankarann的建議和幫助。 如果有人有更好的解決方案,請分享。
是你的顏色在appbar_帆布通過
Fill="{DynamicResource BlackBrush}"
所以當你不在BlackBrush的控制,你真的不能一個的SolidColorBrush適用於它的MahApps庫中的一些其他控制將overwite您的設置應用的權利。
您需要指向的NuGet到鬆的資源文件(這樣你就得到一個Icons.xaml文件,本地播放)要改變顏色
複製appbar圖標(也許創建一個名爲MyIcons資源字典。 XAML並保存在那裏,在MyIcons.xaml加入MyIcons.xaml到您的App.xaml MergedDictionaries)
然後定義你的圖標(與新的顏色太):
<SolidColorBrush x:Key="IconBrushOrange" Color="Orange" />
<Canvas x:Key="my_connecting" All other fields...>
<Path Stretch="Fill" Fill="{StaticResource IconBrushOrange}" All other fields.... />
</Canvas>
然後在您的用戶界面:
<Rectangle Width="20" Height="20">
<Rectangle.Fill>
<VisualBrush Stretch="Fill" Visual="{StaticResource my_connecting}" />
</Rectangle.Fill>
</Rectangle>
這些按鈕是否適用於任何樣式(帶鍵)? – Sankarann