【发布时间】:2021-02-04 11:50:57
【问题描述】:
我是这个 WPF 世界的新手,我对经典的 Windows 桌面应用程序有一些经验。 我正在尝试创建一个自定义的 UserControl 多边形。 我尝试创建一个路径数据,然后将 UserControl Opacity 属性设置为“0”,但它使整个 UserControl 变得透明。
例如,我在用户控件中构建了这个多边形
<UserControl x:Class="WindowsFormsApp2.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="640" Height="480" Opacity="100">
<Grid x:Name="LayoutRoot">
<Path Data="M-70.616296,46.859802 L7.3270039,-1.2587545 174.31959,52.958763 168.71134,98.185567 z" Fill="#FF2121D6" HorizontalAlignment="Left" Height="100" Margin="138,114,0,0" Stretch="Fill" Stroke="Black" Opacity ="100" VerticalAlignment="Top" Width="246"/>
</Grid>
如您所见,用户控件为 640x480,因此当我向 UserControl_MouseLeftButtonDown 事件添加代码时,如果在 640x480 内的任何位置单击它就会触发,而我只想在多边形内单击时触发。
我一直在谷歌搜索解决方案,但找不到任何解决方案,¿也许我想要的它不可能?
【问题讨论】:
-
只有一个Path的时候,控件的目的是什么?直接使用路径。
-
嗨@Clemens,我该怎么做?,我是这个世界的新手。目的是能够使用几个不同的用户控件来制作像拼图一样的东西,所以每个部分都有自己的行为。想想阴阳这个数字。
-
您不需要用户控件。路径或多边形也是您可以直接放入容器面板中的 UI 元素,例如画布。请不要尝试在没有任何知识的情况下启动 WPF。阅读一些介绍性材料确实很有帮助,例如一本书。