3
假設我們使用「Ctrl + S」輸入手勢來保存項目。隱藏或禁用wpf中的輸入手勢文本
在文件菜單 - 「保存Ctrl + S」顯示這樣的文字。 現在關於SaveCommand的canexecute,我檢查項目是否需要保存或不保存。如果不需要,則保存被禁用。
在這種情況下,我看到類似「Ctrl + S」的菜單項。我也要隱藏這個輸入手勢文字。
想法?
任何新的飼料?
這個問題沒有得到愛情:(...
假設我們使用「Ctrl + S」輸入手勢來保存項目。隱藏或禁用wpf中的輸入手勢文本
在文件菜單 - 「保存Ctrl + S」顯示這樣的文字。 現在關於SaveCommand的canexecute,我檢查項目是否需要保存或不保存。如果不需要,則保存被禁用。
在這種情況下,我看到類似「Ctrl + S」的菜單項。我也要隱藏這個輸入手勢文字。
想法?
任何新的飼料?
這個問題沒有得到愛情:(...
最後我找到了解決。Overrided菜單項的默認模板,並添加了扳機,只要菜單項被禁止,手勢輸入的文本改變顏色看起來像禁用。
這裏是被覆蓋的模板,最後觸發不會上述問題,我的意思是顏色變化..
<ControlTemplate x:Key="{x:Static MenuItem.SubmenuItemTemplateKey}"
TargetType="{x:Type MenuItem}">
<Border x:Name="Border"
TextElement.Foreground="{DynamicResource SubMenuItemTextForegroundColor}"
Background="{DynamicResource FileMenuBackgroundBrush}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"
SharedSizeGroup="Icon" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto"
SharedSizeGroup="Shortcut" />
<ColumnDefinition Width="13" />
</Grid.ColumnDefinitions>
<ContentPresenter x:Name="Icon"
Margin="6,0,6,0"
VerticalAlignment="Center"
ContentSource="Icon" />
<Border x:Name="Check"
Width="13"
Height="13"
Visibility="Collapsed"
Margin="6,0,6,0"
Background="#C0C0C0"
BorderThickness="1"
BorderBrush="#404040">
<Path x:Name="CheckMark"
Width="7"
Height="7"
Visibility="Hidden"
SnapsToDevicePixels="False"
Stroke="#404040"
StrokeThickness="2"
Data="M 0 0 L 7 7 M 0 7 L 7 0" />
</Border>
<ContentPresenter x:Name="HeaderHost"
Grid.Column="1"
ContentSource="Header"
RecognizesAccessKey="{TemplateBinding Tag,
Converter={StaticResource TagToRecognizesAccessKeyConverter}
}"
VerticalAlignment="Center" />
<TextBlock x:Name="InputGestureText"
Grid.Column="2"
Text="{TemplateBinding InputGestureText}"
Margin="5,2,0,2"
DockPanel.Dock="Right" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="Icon"
Value="{x:Null}">
<Setter TargetName="Icon"
Property="Visibility"
Value="Hidden" />
</Trigger>
<Trigger Property="IsChecked"
Value="true">
<Setter TargetName="CheckMark"
Property="Visibility"
Value="Visible" />
</Trigger>
<Trigger Property="IsCheckable"
Value="true">
<Setter TargetName="Check"
Property="Visibility"
Value="Visible" />
<Setter TargetName="Icon"
Property="Visibility"
Value="Hidden" />
</Trigger>
<Trigger Property="IsHighlighted"
Value="true">
<Setter Property="Background"
TargetName="Border"
Value="{DynamicResource SubMenuItemMouseOverBackgroundBrush}" />
<Setter Property="TextElement.Foreground"
TargetName="Border"
Value="{DynamicResource FileMenuBackgroundBrush}" />
</Trigger>
<Trigger Property="IsEnabled"
Value="false">
<Setter TargetName="HeaderHost"
Property="TextElement.Foreground"
Value="#DDDDDD" />
<Setter TargetName="InputGestureText"
Property="TextElement.Foreground"
Value="#DDDDDD" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
我需要它v.soon。請拿出一些好的解決方案.. .. – Rohit 2010-09-01 11:52:48
Feed comments ... – Rohit 2010-09-01 16:23:59
當CanExecute返回false時,應該自動禁用包括手勢文本的菜單項。這不是你所看到的嗎? – 2010-09-02 08:09:11