ExpressionDark
WPFアプリのテーマを使用していますが、のカスタムスタイルがありMenuItems
ます。aMenuItem
を無効にすると、これを反映するために灰色のスタイルを使用する必要があり、コントロールMenuItems
内で機能します。Menu
MenuItems
ただし、ContextMenu
(コピーが無効になっている)にある場合は機能しません
問題をTextBlockスタイルまで追跡しました。このスタイルを削除すると、ContextMenuで機能しますが、他のスタイルは削除すると機能しなくなります。
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Foreground" Value="{DynamicResource TextBrush}" />
</Style>
編集:私がaMenuItem
または私のカスタムを使用するかGestureMenuItem
どうかは関係ありませんが、重要なのは_charを使用するかどうかです(キーショートカットの場合)_を削除すると、スタイルはMainMenu
どちらでも機能しません。
に関連するスタイルMenuItem
:
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
</Trigger>
ここにあるソースコード。関連するContextMenu
XAML:
<TextBox x:Name="Text"
Height="Auto"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Visible"
AcceptsReturn="True"
IsReadOnly="true">
<TextBox.ContextMenu>
<ContextMenu>
<MenuItem Header="Copy" Command="Copy">
<MenuItem.Icon>
<Image Source="{StaticResource IconCopy}"/>
</MenuItem.Icon>
</MenuItem>
<Separator></Separator>
<MenuItem cal:Message.Attach="Clear()" Header="Clear All">
<MenuItem.Icon>
<Image Source="{StaticResource IconDelete}"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</TextBox.ContextMenu>
</TextBox>
MenuItems
メインメニューの作業中(同じスタイルGestureMenuItem
を継承して使用):MenuItem
<Menu IsMainMenu="True">
<Menu.Resources>
<Image x:Key="ViewIcon" x:Shared="false"
Source="{Binding Path=Icon}" />
</Menu.Resources>
<!-- Items here removed to shorten XAML -->
<MenuItem Header="_Script">
<common:GestureMenuItem x:Name="RunScript" Header="_Run script" Key="F5">
<MenuItem.Icon>
<Image Source="{StaticResource IconPlay}"/>
</MenuItem.Icon>
</common:GestureMenuItem>
<common:GestureMenuItem x:Name="StopScript" Header="_Stop script" Key="F5" Modifiers="Shift">
<MenuItem.Icon>
<Image Source="{StaticResource IconStop}"/>
</MenuItem.Icon>
</common:GestureMenuItem>
</MenuItem>
<!-- Items here removed to shorten XAML -->
</Menu>
ジェスチャーアイテムのスタイル:
<Style TargetType="{x:Type Caliburn:GestureMenuItem}" BasedOn="{StaticResource {x:Type MenuItem}}">
</Style>
私は回避策を思いついた、それはまったく同じスタイルを与えることはないが、それはうまくいく、私はそれのために行くべきですか?
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.5"/>
</Trigger>
このソリューションでは、ジェスチャーテキストとアイコンの両方が灰色であるため、フォアカラーを灰色に設定するよりも実際には優れたソリューションである可能性があります。