2016-08-25 10 views
1

コンバータを使用してXAMLコントロールのマウスカーソルを変更したい。XAMLマウスカーソルコンバータが動作しない

最初のチェック:

<Border Cursor="Help"> 

これは正常に動作しないマウスがコントロール上にあるとき、私は、ヘルプカーソルを取得します。

public class MouseCursorConverter : IValueConverter 
    { 


     public object Convert(object value, System.Type targetType, object parameter, CultureInfo culture) 
     { 
      try 
      { 

       if(<my logic>) 
         return System.Windows.Forms.Cursors.Help; 
       else 
         return System.Windows.Forms.Cursors.Arrow; 
       } 

      } 
      catch 
      { 

       return null; 
      } 
     } 
... 
} 

し、それを呼び出すこの方法:

<Border Cursor="{Binding pointCapture, Converter={StaticResource MouseCursorConverter}}"> 

は私が必要なときに、コンバータが呼び出されることがわかりますが、それが正しいを返さない私は、コンバータをこのように実装する場合は今

値。 しかし、コントロールにマウスを重ねると値は無視されます。

理由は何ですか?

+0

境界線を越えている場合は、バインディングポイントキャプチャが変更されていますか?あなたが望むようにバインディングがどのように機能するのだろうか。 – Mathieu

+0

私の最初のアイデアは、そのようなものを扱うための動作を追加することです – Mathieu

+0

他の方法で、私がpointCaptureを変更すると、イベントが発生します。 ビューは、コントロールを再描画しようとし、期待値を返すコンバータを呼び出します。 しかし、マウスのカーソルは変わりません。 –

答えて

2

WinFormsカーソルを使用しています。System.Windows.Input.Cursors.Helpを試してください。

TypeConverterのおかげでXAMLで動作します。

+0

Bingoooo !!! :) Thx a ton、ファンク –

関連する問題