解決全局更改Separator的樣式在ContextMenu中不生效問題

今天在編寫樣式時遇到Separator的樣式全局設置后無效問題,經過漫長的搜索,終于找到解決方案,就是重寫{x:Static MenuItem.SeparatorStyleKey}樣式。
原因是Menu 元素內的 Separator 控件外觀與 Menu 外的 Separator 控件不一樣。當創建帶 Separator 的 Menu 時,該控件會自動應用由 SeparatorStyleKey 屬性標識的 Style。

<Style x:Key="{x:Static MenuItem.SeparatorStyleKey}" TargetType="{x:Type Separator}">
    <Setter Property="Foreground" Value="Red"></Setter>
    <Setter Property="Background" Value="Blue"></Setter>
    <Setter Property="Width" Value="45"></Setter>
    <Setter Property="HorizontalAlignment" Value="Center"></Setter>
    <Setter Property="VerticalAlignment" Value="Center"></Setter>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Separator}">
                <Grid>
                    <Rectangle Height="1" Stroke="{TemplateBinding Foreground}" />
                </Grid>

            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

參考:如何:為用作菜單項的 Separator 設置樣式

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • ¥開啟¥ 【iAPP實現進入界面執行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,524評論 0 17
  • 1: 獲取控件寬高 控件View有getHeight()和getwidth()方法可以獲取寬高,但是如果直接在on...
    自由人是工程師閱讀 1,834評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,349評論 25 708
  • 春日遲遲, 卉木萋萋, 花露重,草煙低, 檐上云結陰, 澗下風清采蘩祁。 桃色灼灼, 燕弄飛飛, 數聲啼,相思里,...
    塵間小妖閱讀 1,686評論 0 0
  • 記憶里的酒,是祭灑在翠柏青松間爺爺的墳頭。即使是水,也熏嗆著人的雙眸,淚眼訴說著對逝者的離愁。 兒時的酒,是啤酒瓶...
    聿張閱讀 338評論 2 2