Xaml UWP -关闭我的内容对话框点击空白区域
我已经为我的UWP应用程序创建了一个内容对话框,其中包含一个集中的UI元素和一个周围的空白区域。但是内容对话框没有“IsLightDismissEnabled”这样的属性,在单击UIELEMENT区域以外的区域时关闭对话框。我如何实现它?内容对话框是一个模式对话框。你为什么不使用一个或一个子类呢?它是非模态的,并且已经具有您刚才提到的IsLightDismissEnabled属性。我能想到的选项很少:Xaml UWP -关闭我的内容对话框点击空白区域,xaml,uwp,Xaml,Uwp,我已经为我的UWP应用程序创建了一个内容对话框,其中包含一个集中的UI元素和一个周围的空白区域。但是内容对话框没有“IsLightDismissEnabled”这样的属性,在单击UIELEMENT区域以外的区域时关闭对话框。我如何实现它?内容对话框是一个模式对话框。你为什么不使用一个或一个子类呢?它是非模态的,并且已经具有您刚才提到的IsLightDismissEnabled属性。我能想到的选项很少: 使用弹出窗口(如uruk建议的)并在其中添加控件,在所需位置创建弹出窗口(如果您希望根据运行
- 使用弹出窗口(如uruk建议的)并在其中添加控件,在所需位置创建弹出窗口(如果您希望根据运行时的用户输入在位置显示弹出窗口,也可以在此处使用绑定弹出窗口具有HorizontalOffset和VerticalOffset属性)
- 创建占据整个页面但透明的父视图,然后在中间添加UI元素,并将点击/单击事件附加到透明视图。这些事件只会关闭、移除/折叠包含其他元素的透明视图(通过绑定值或将值设置为UI元素)
<Popup x:Name="MenuPopUp"
IsLightDismissEnabled="True"
HorizontalOffset="{Binding HorizontalOffset}"
VerticalOffset="{Binding VerticalOffset}"
IsOpen="{Binding IsOpen, Mode=TwoWay}">
<Grid>
YOUR ELEMENTS HERE
</Grid>
</Popup>
你的元素在这里
在CS中
私有void菜单opup_LostFocus(对象发送方,RoutedEventArgs e)
{
MenuPopup.IsOpen=false;
}
在“内容背后的代码”对话框中:
public sealed partial class CustomDialog : ContentDialog
{
public CustomDialog()
{
this.InitializeComponent();
Boolean isHide;
Window.Current.CoreWindow.PointerPressed += (s, e) =>
{
if (isHide)
Hide();
};
PointerExited += (s, e) => isHide = true;
PointerEntered += (s, e) => isHide = false;
}
}
这应该被标记为答案。其他答复没有回答这个问题。
public sealed partial class CustomDialog : ContentDialog
{
public CustomDialog()
{
this.InitializeComponent();
Boolean isHide;
Window.Current.CoreWindow.PointerPressed += (s, e) =>
{
if (isHide)
Hide();
};
PointerExited += (s, e) => isHide = true;
PointerEntered += (s, e) => isHide = false;
}
}