我正在使用XAML Toolkit ImageButton控件来为按钮创建正常和按下状态。代码是:
<toolkit:ImageButton NormalStateImageSource="ms-appx:///Assets/1_off.png"
PressedStateImageSource="ms-appx:///Assets/1_on.png"
Width="500"
Height="200">
</toolkit:ImageButton>
我面临的问题是,我的形状不是矩形或方形。例如,我有星形和箭头对象的PNG。有没有办法设置与形状相对应的边界?如果没有,请建议处理此类情况的最佳方法。
答案 0 :(得分:2)
我尝试过两种选择
使用鼠标或触摸点击时 - 在点击之前检查指针的最后位置,看看按钮中的图像是否在该位置有一个不透明的像素。
为您的图片生成一个矢量路径,并将其作为带有Path
的{{1}}元素放入按钮模板中,然后标记任何其他非透明或可测试的模板元素(按钮,边框与背景=&#34;透明&#34;等)为Fill="Transparent"
。
IsHitTestVisible="false"
可能非常简单,或者您甚至可以使用类似Path.Data
元素的内容在大多数情况下,总体上更好的解决方案是将命中可测区域保持矩形。原因是 - 任意形状是一个挑剔且不可靠的命中测试目标,因此它使单击按钮更加困难。使用默认的矩形边框或最多 - 椭圆形状更简单,更实用。