0

次のコードを使用して、RichTextBlock.Visibilityプロパティを別のコントロールのFocusStateプロパティにバインドしています。

 <RichTextBlock FontFamily="Segoe UI" FontSize="22" FontWeight="Light" 
                               Foreground="{StaticResource SwiftLightTextBrush}" 
                               Visibility="{Binding ElementName=ProfessionalHeadlineInput, Path=FocusState, Converter={StaticResource FocusStateToVisibilityConverter}}" >

の意味 FocusStateToVisibilityConverter.Convertは次のとおりです。

public object Convert(object value, Type targetType, object parameter, string language)
{
    var focusState = (FocusState)value;

    return focusState == FocusState.Keyboard || focusState == FocusState.Pointer || focusState == FocusState.Programmatic ? Visibility.Visible : Visibility.Collapsed;
}

ProfessionalHeadlineInput初心者の質問かもしれませんがTextBox、マウスまたはタブのナビゲーションを使用してターゲット要素(要素)に「フォーカス」しているときにバインディングが適用されないのはなぜですか?

メソッドにブレークポイントを挿入しましたが、 TextBoxConvertをクリックまたは「タブ」したときにブレークポイントが呼び出されません。ProfessionalHeadlineInput

注意重要な部分-私のプロジェクトはWindows8メトロスタイルのアプリケーションです。

4

2 に答える 2

1

Microsoft フォーラムで Matt Small から回答を得ました。

OK - これは実際には FocusState のバグです - 値を更新していません。データベースにバグを報告しています。これを盛り上げてくれてありがとう。

于 2012-05-20T11:01:50.237 に答える
1

ここに表示される唯一の理由は、変更されない可能性があることFocusStateです。他のすべては問題ないように見えます。また、明示的に設定してみてくださいDPFocusStateMode=OneWayUpdateSourceTrigger=PropertyChanged

于 2012-05-15T15:38:56.477 に答える