【问题标题】:UWP - Close my content dialog on click on the blank areaUWP - 单击空白区域关闭我的内容对话框
【发布时间】:2015-10-19 06:57:29
【问题描述】:

我已经为我的 UWP 应用程序创建了一个内容对话框,其中涉及一个集中的 UI 元素和周围的空白区域。但是内容对话框没有像“IsLightDismissEnabled”这样的属性来关闭对话框,单击除 UIELEMENT 区域之外的区域.我怎样才能实现它?

【问题讨论】:

    标签: xaml uwp


    【解决方案1】:

    在内容对话框后面的代码中:

    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;
        }
    }
    

    【讨论】:

    • 这应该被标记为答案。其他回复没有回答问题。
    【解决方案2】:

    我能想到的选项很少:

    • 使用弹出窗口(如 uruk 建议的那样)并在其中添加控件,在所需位置创建弹出窗口(如果您想在运行时根据用户输入在位置显示弹出窗口,也可以在此处使用绑定 Popup 具有 Horizo​​ntalOffset 和 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>
    

    【讨论】:

      【解决方案3】:

      内容对话框是一个模式对话框。为什么不使用Popup 或它的子类?它是非模态的,并且已经具有您刚才提到的 IsLightDismissEnabled 属性。

      【讨论】:

        【解决方案4】:
        <Popup x:Name="MenuPopUp"
               IsLightDismissEnabled="True"
               LostFocus="MenuPopUp_LostFocus"/>
        
        In CS
        private void MenuPopUp_LostFocus(object sender, RoutedEventArgs e)
        {
               MenuPopup.IsOpen = false;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-12-20
          • 1970-01-01
          • 2015-02-27
          • 2016-12-30
          • 2020-09-09
          • 2015-11-30
          • 1970-01-01
          相关资源
          最近更新 更多