0
想象一下,我将这个椭圆应用于样式的ControlTemplate。现在只要鼠标进入接触与该椭圆此元件得到由鼠标捕获(例如:这将被用于滑动件的拇指)更改击中区域
<Ellipse x:Name="Ellipse"
Fill="#C0FFFFFF"
Stroke="{StaticResource SpecialColor}"
StrokeThickness="2"/>
。我怎样才能改变碰撞几何?是否有只有XAML的方法才能做到这一点?
假设我想让碰撞区域变小,所以当鼠标位于椭圆中间时,它会捕捉它。
或者我想让碰撞区域大于椭圆大小,所以当鼠标靠近椭圆时它会捕获它。
最简单的方法(仅限于XAML)将在其上放置一个稍大(或更小)的带有Fill =“Transparent”的椭圆。透明(而不是空)不计入命中测试。 –
好意见,使虚拟椭圆更大更透明。但椭圆比较小?如果我用一些笔刷填充外部椭圆,它将计入点击测试 –
正如Erno在他的回答中指出的,您必须在透明椭圆上处理鼠标事件。把你当前的椭圆想象成装饰者,把透明的看作是“实际”的椭圆。 –