我在 WPF 中有一個背景關系選單,其中包含以下專案:
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="{x:Static localization:Resources.MyContext_Command1}" Command="{Binding Command1}" />
<MenuItem Header="{x:Static localization:Resources.MyContext_Command2}" Command="{Binding Command2}" />
<Separator />
<MenuItem Header="{x:Static localization:Resources.MyContext_Command3}" Command="{Binding Command3}" Visibility="{Binding IsItemActive, Converter={converters:BooleanToVisibilityConverter}}" />
<MenuItem Header="{x:Static localization:Resources.MyContext_Command4}" Command="{Binding Command4}" Visibility="{Binding IsItemActive, Converter={converters:BooleanToVisibilityConverter}}" />
<Separator Visibility="{Binding IsItemActive, Converter={converters:BooleanToVisibilityConverter}}"/>
</ContextMenu>
使用上面的代碼,這些選單項(Command3 和 Command4)在 IsItemActive = false 時顯示為灰色(禁用),在 IsItemActive = true 時顯示為黑色(啟用)。但我希望我的選單項(Command3 和 Command4)和分隔符從基于“IsItemActive”的背景關系選單中消失/出現。我怎樣才能做到這一點?
uj5u.com熱心網友回復:
這應該可以解決問題。但是我現在無法讓我的系結作業,所以它沒有經過測驗。您必須為要應用它的元素命名,以便系結作業。就我而言,它是一個視窗。
創建一個依賴屬性,IsItemActive只有這樣你才能系結。提示:propdp在 Visual Studio 中鍵入和雙選項卡以使用代碼片段。
<Window x:Class.....
x:Name="mainwindow"
...>
然后在<Window.Resources>定義樣式
<Style x:Key="MenuItemStyle" TargetType="MenuItem">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=mainwindow,Path=IsItemActive}" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=mainwindow,Path=IsItemActive}" Value="True">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
復制樣式并更改TargetType="Separator"然后在背景關系選單項和分隔符上應用樣式。
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="{x:Static localization:Resources.MyContext_Command1}" Command="{Binding Command1}" />
<MenuItem Header="{x:Static localization:Resources.MyContext_Command2}" Command="{Binding Command2}" />
<Separator />
<MenuItem Header="{x:Static localization:Resources.MyContext_Command3}" Command="{Binding Command3}" Style="{StaticResource MenuItemStyle}" />
<MenuItem Header="{x:Static localization:Resources.MyContext_Command4}" Command="{Binding Command4}" Style="{StaticResource MenuItemStyle}" />
<Separator Style="{StaticResource SeparatorStyle}"/>
</ContextMenu>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/352563.html
