【发布时间】:2010-09-21 09:14:17
【问题描述】:
我目前正面临着 WPF 拇指控件上的光标的奇怪行为。我有一个在 Cursor 属性上具有多重绑定的拇指,该属性会根据拇指的旋转变换角度来更改光标。当我将鼠标悬停在拇指上时,这可以正常工作。但是,当我在拇指上按下鼠标(进行一些变换)时,光标会变回其原始状态(只要鼠标按钮按下)。 当在 UIElement 上按下鼠标时,是否有一些东西会覆盖当前光标? 有任何想法吗? 问候
约阿希姆
【问题讨论】:
我目前正面临着 WPF 拇指控件上的光标的奇怪行为。我有一个在 Cursor 属性上具有多重绑定的拇指,该属性会根据拇指的旋转变换角度来更改光标。当我将鼠标悬停在拇指上时,这可以正常工作。但是,当我在拇指上按下鼠标(进行一些变换)时,光标会变回其原始状态(只要鼠标按钮按下)。 当在 UIElement 上按下鼠标时,是否有一些东西会覆盖当前光标? 有任何想法吗? 问候
约阿希姆
【问题讨论】:
覆盖/强制游标通常使用 CoerceValue 完成。试试这样的。
FrameworkElement.CursorProperty.OverrideMetadata(
typeof(ThumbOrMyThumbDerivedClass),
new FrameworkPropertyMetadata(
null,
new CoerceValueCallback(MyHelperClassOrMyThumbderivedClass.CoerceCursor)));
private static object CoerceCursor(DependencyObject o, object value)
{
if (/* conditions when to use the custom cursor */)
{
return CustomCursor;
}
return value;
}
【讨论】: