gpt4 book ai didi

c# - 如何在自定义 FrameworkElement 上设置指针事件样式

转载 作者:行者123 更新时间:2023-12-04 08:34:07 24 4
gpt4 key购买 nike

我正在尝试在使用 Uno 构建的 WebAssembly 应用程序中创建文件对话框。我添加了一个自定义 FrameworkElement 来创建 <input type="file">在页面中像这样:

[HtmlElementAttribute("input")]
public sealed partial class PicInputControl : FrameworkElement
{
public PicInputControl()
{
this.SetHtmlAttribute("type", "file");
this.SetHtmlAttribute("accept", "image/png, image/jpg, image/bmp, image/jpeg");
this.ClearCssStyle("pointer-events");
}
}
应用程序运行时,css样式选项 pointer-events设置为 none默认情况下,即使清除 pointer-events风格。这需要是 auto为了能够用鼠标点击它来与ui元素进行交互。
我应该如何在此控件上设置指针事件?

最佳答案

pointer-events CSS 样式是 overridden by the Uno framework在运行时基于 WinUI 规则进行 HitTest ,因此从 ctor 更改它不会产生任何影响。
将其设置为 auto ,您需要确保您的自定义元素符合“命中可见”的条件。一个简单的方法是设置一个非空 Background值(value)。

    [HtmlElementAttribute("input")]
public sealed partial class PicInputControl : FrameworkElement
{
public PicInputControl()
{
this.SetHtmlAttribute("type", "file");
this.SetHtmlAttribute("accept", "image/png, image/jpg, image/bmp, image/jpeg");
this.ClearCssStyle("pointer-events");
Background = SolidColorBrushHelper.Transparent;
}
}

关于c# - 如何在自定义 FrameworkElement 上设置指针事件样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64884867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com