Wpf 带有复选框和弹出窗口的菜单式用户界面
我用复选框和弹出框制作了一个类似UI的菜单Wpf 带有复选框和弹出窗口的菜单式用户界面,wpf,binding,Wpf,Binding,我用复选框和弹出框制作了一个类似UI的菜单 <CheckBox Name="Menu" /> <Popup Placement="Top" PlacementTarget="{Binding ElementName=Menu}" IsOpen="{Binding ElementName=Menu, Path=IsChecked}" AllowsTransparency="True" PopupAnimation="Slide" > ... </Popup>
<CheckBox Name="Menu" />
<Popup Placement="Top" PlacementTarget="{Binding ElementName=Menu}" IsOpen="{Binding ElementName=Menu, Path=IsChecked}" AllowsTransparency="True" PopupAnimation="Slide" >
...
</Popup>
...
当用户单击“菜单”按钮时,按钮上方会显示弹出窗口。然后再次单击,它将隐藏
我做了一个风格的弹出窗口,如下
<Style x:Key="MenuPopup" TargetType="Popup">
<Setter Property="Placement" Value="Top"/>
<Setter Property="IsOpen">
<Setter.Value>
<Binding Path="IsChecked" Source="PlacementTarget"/>
</Setter.Value>
</Setter>
<Setter Property="AllowsTransparency" Value="True"/>
<Setter Property="PopupAnimation" Value="Slide" />
</Style>
使用这种风格,代码非常简单
<CheckBox Name="Menu" />
<Popup PlacementTarget="{Binding ElementName=Menu}" Style="{StaticResource MenuPopup} >
...
</Popup>
绑定的源不应该是PlacementTarget
,而应该是弹出窗口本身。改变
<Binding Path="IsChecked" Source="PlacementTarget"/>
到
它会起作用的
<Binding Path="PlacementTarget.IsChecked" RelativeSource="{x:Static RelativeSource.Self}"/>