利用C#实现类似windows的开始按钮,即按一下弹出,在按一下收回,按空白区域弹出的界面也可收回。最好利用WPF的popup实现。我目前无法实现当界面已弹出后,再按一下让界面收回。
popup定义代码
PlacementTarget="{Binding ElementName=BottomGrid}"
StaysOpen="False"
Name="ArchiveButtonPopup"
Closed="IsShowClosed"
IsOpen="{Binding IsChecked, ElementName=ArchiveButton, Mode=OneWay}">
prism:RegionManager.RegionName="ArchivingJobMonitorRegion" />
按钮定义
Name="ArchiveButton">
<Image Source="icons/状态栏-归档.png"
Stretch="Fill"
Width="64"
Height="64"
Name="ArchiveImage"
ToolTip="归档"
MouseLeftButtonDown="PullMouseDown"
MouseLeftButtonUp="PushMouseUp"/>
private bool isShowClosed = true;
private bool isUnchenked = false; //鼠标是否在下拉框没有弹出的时候按下
private void IsShowClosed(object sender, EventArgs e)
{
isShowClosed = true;
}
private void PullMouseDown(object sender, MouseButtonEventArgs e)
{
if (isShowClosed)
{
isUnchenked = true;
}
}
private void PushMouseUp(object sender, MouseButtonEventArgs e)
{
if (isUnchenked)
{
isUnchenked = false;
isShowClosed = false;
ArchiveButtonPopup.IsOpen = true;
}
}
全部代码就这三块,现在就是按下按钮界面弹出后,在按空白区域,界面收回。但再次按下按钮,界面无法弹出。