WPF 弹出窗口 IsOpen 问题

2024-02-20

使用发现的概念在 StackOverflow 上 https://stackoverflow.com/a/8946055/24399. 请注意,ToggleButton.IsHitTestVisible一定会Popup.IsOpen, with StaysOpen="False".这应该意味着触摸任何地方outside the Popup会导致它关闭。然而...

触摸/点击ListBoxItem in the ItemsControl不会关闭Popup,正如预期的那样。触摸范围内的任何其他地方Popup does关闭它。根据它的设置方式,这似乎不合理。

<Grid ClipToBounds="True">
    <Border Name="Root">
        <ToggleButton x:Name="PART_Toggle"
                  ClickMode="Release"
                  IsHitTestVisible="{Binding ElementName=PART_Popup,
                                             Path=IsOpen,
                                             Mode=OneWay,
                                             Converter={StaticResource BooleanInverter}}"/>
    </Border>
    <Popup x:Name="PART_Popup"
           IsOpen="{Binding ElementName=PART_Toggle,
                            Path=IsChecked}"
           PlacementTarget="{Binding ElementName=PART_Toggle}"
           StaysOpen="False">
        <Grid Background="Transparent">
            <Grid>
                <!-- Anything here (outside of the Item) -->
                <ItemsControl>
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Grid>
                                <!-- Anything in this item template works. The popup does not close -->
                            </Grid>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </Grid>
            </Border>
        </Grid>
    </Popup>
</Grid>

有任何想法吗?谢谢。


编辑:已解决

事实证明发生这种情况是因为它位于派生自的自定义控件内ListBox。抱歉,在我提出这个问题时,这似乎并不相关。


我认为在你的情况下问题是弹出窗口的位置或大小。当尝试你的代码时它确实有效,但是我必须设置Placement="Center"在弹出窗口上并设置弹出窗口内网格的大小。

如果没有前者,弹出窗口不会放置在内部,而如果没有后者,弹出窗口的大小只是其内容的大小(意味着没有外部可单击)。

首先尝试将弹出窗口的背景设置为红色或其他颜色,以查看弹出窗口的实际位置和大小是否正确。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 弹出窗口 IsOpen 问题 的相关文章

随机推荐

  • Javascript:如何每秒循环遍历每个数组的项目

    可以说我有一个像这样的数组 var arr 0 1 2 3 4 所以我想创建一个 for 循环 循环遍历数组并控制台记录每个项目 但我希望它单独控制台记录每个项目 并且每个项目将在前一个项目之后一秒进行控制台记录 我该怎么做 您可以使用间隔
  • 如何使用 CSS 设置占位符值?

    我想仅使用 CSS 设置输入框的占位符值 而不使用 JavaScript 或 jQuery 我怎样才能做到这一点 AFAIK 你不能单独使用 CSS 来做到这一点 CSS有content但即使如此 也可以使用伪选择器在元素之前或之后插入内容
  • 在 Windows XP 登录屏幕 (.NET / Pinvoke) 上运行进程(使用 GUI)

    我需要写一个小service运行一个应用程序 使用 GUI 例如calc exe 在登录屏幕上 我已经找到这个问题 和答案 在 Windows 7 欢迎屏幕上运行进程 https stackoverflow com questions 30
  • 如何组合数据框中的连续数据并累加值

    我有一个数据框 Type Volume Date Q 10 2016 6 1 Q 20 2016 6 1 T 10 2016 6 2 Q 10 2016 6 3 T 20 2016 6 4 T 20 2016 6 5 Q 10 2016 6
  • 如何使用 _this_ Jeditable 获取被操纵的 dom 元素的值?

    这是一个延续Jeditable 如何根据dom元素属性设置参数 https stackoverflow com questions 1255596 请在这里回复 这是我的 真实 帐户 我正在尝试将不同的参数值分配给启用了 jQuery 插件
  • 使用 matlab 创建跨图像边界的强度带

    I have this image 8 bit pseudo colored gray scale 我想在其边界周围创建一个特定度量的强度带 我尝试了腐蚀和其他数学运算 包括过滤以实现所需的频带 但一旦我使用腐蚀来切割部分边界 实际图像强度
  • 如何在 Postgresql 中提取子字符串模式

    我有一列包含很多不一致的字符串 其中一些包含具有一致模式的子字符串 2015mmdd AB CD EFG text text HIJ 我想提取它 我觉得这是正则表达式和子字符串命令的交叉情况 到目前为止我最好的方法是相当丑陋的 substr
  • NSURLSession,上传任务 - 获取传输的实际字节数

    我收到错误报告 称我的 iOS 应用程序在连接速度较慢时无法上传图像 虽然我的超时可能不够长 但还有另一个问题 我发现上传进度很快就达到 100 尽管我可以在 Charles 中看到字节仍在传输 我使用 NSURLSession 的以下方法
  • “nice”是否影响Java线程的优先级[重复]

    这个问题在这里已经有答案了 在 Unix 系统上 您可以以较低的 CPU 优先级 运行进程 迂腐地说 它不会改变所谓的 优先级 priority 而是影响可用 CPU 时间的使用份额 这是一般意义上的 优先级 使用nice命令 nice p
  • 如何在pytorch中打印Adadelta中的“实际”学习率

    In short 在 pytorch 中使用 adadelta 优化器时 我无法绘制 lr epoch 曲线 因为optimizer param groups 0 lr 始终返回相同的值 详细 Adadelta 可以仅使用一阶信息随时间动态
  • jquery mobile - 附加 html 内容并应用 JQuery mobile 的样式

    我有一个移动网站 它是通过附加 XML 提要中的数据创建的 最初加载提要及其所有数据 然后当用户浏览站点时从数组中获取正确的提要内容 以前的内容从 div 中清除 并应用新内容 我试图在附加新内容时向 jquery mobile 调用某种
  • 如何从 bash 读取参数[重复]

    这个问题在这里已经有答案了 我很好奇如何通过终端将参数传递到 bash 脚本并读取它们并根据参数处理脚本函数 所以如果我做了类似的事情 scriptname sh install or scriptname sh assets instal
  • Perl 模块 HTML::Template 可以使用除 之外的其他语法吗?

    我正在尝试利用Perl module HTML Template根据文档 它说你可以使用HTML注释而不是标记周围的大于 小于 但它对我不起作用 来自 HTML Template 的 perldoc 如果您热衷于有效的 HTML 并且希望您
  • OCI 运行时执行失败:container_linux.go:344:启动容器进程导致“没有这样的文件或目录”:未知

    我正在运行示例教程Hyperledger Fabric 文档 https hyperledger fabric readthedocs io en release 1 4 html 尝试使用以下命令运行 构建您的第一个网络 示例 byfn
  • Vue 3 - 访问路由器视图实例以调用子方法

    我正在尝试将 Vue 2 x 应用程序迁移到 Vue 3 x 不幸的是 在过去的两天里 我正在努力寻找解决这个简单问题的方法 我的应用程序适用于移动设备 在屏幕顶部有一个顶部栏 左侧和右侧有 2 个上下文按钮 这些按钮触发与我的视图中加载的
  • 带有粘性标题的 flutter DraggableScrollableSheet

    我正在我的 flutter 应用程序中实现 DraggableScrollableSheet 并希望有一个粘性标题 即只有列表视图滚动 并且工作表的顶部始终保持在原位 我的小部件看起来像这样 SizedBox expand child Dr
  • Scintilla 中的交替行着色

    我在用着wxStyledTextCtrl http wiki wxwindows org WxStyledTextCtrl来自 wxPython 一个围绕闪烁体 http www scintilla org 成分 有什么方法可以在其上获得替
  • Lua 中的 OOP - 创建类?

    我知道这个网站上有一些关于在 Lua 中实现 OOP 的问题 但是 这个问题有点不同 至少与我发现的相比 我正在尝试创建一个名为 human 并使其使用 人类 的 新 构造函数创建的对象继承人类内部的所有内容 除了它的构造函数 但是 我也不
  • 如何使用 TypeScript 定义 DynamoDB get 的返回类型?

    I have let resItem Schema resItem await dynamoClient get TableName Key uuid request body uuid promise 但我得到 Type PromiseR
  • WPF 弹出窗口 IsOpen 问题

    使用发现的概念在 StackOverflow 上 https stackoverflow com a 8946055 24399 请注意 ToggleButton IsHitTestVisible一定会Popup IsOpen with S