0

SharpDx(基本的にはC#DirectXラッパー)でレンダリングするために使用するSwapChainBackgroundPanelであるページがあります。私の入力では、パネルのポインター*イベントとキー*イベントを処理します。問題は、パネルの隅にもボタン(戻るボタン)があり、何らかの理由でそのボタンがデフォルトのフォーカスを取得していることです。したがって、スペースバーを押すと、ボタンのクリックイベントが呼び出されます。

これを防ぐには、ユーザーは背景(パネル)をクリックしてフォーカスを戻す必要があります。問題は、プログラムでフォーカスをパネルに戻し、ボタンから外す方法が見つからないことです。ボタンだけにフォーカスを設定する機能がありますが、それは私には役立ちません。

4

2 に答える 2

1

フォーカスを別の非表示ボタンに移動できます。

XAML

<Grid>
    <Button
        x:Name="b"
        Content="click"
        Click="B_OnClick" />
    <Button
        x:Name="b2"
        Opacity="0.005" />
</Grid>

C#

    private async void B_OnClick(object sender, RoutedEventArgs e)
    {
        b.Focus(FocusState.Programmatic);
        await Task.Delay(100);
        b2.Focus(FocusState.Programmatic);
    }

私の他の答えはここでは機能しないようですが、将来的には機能する可能性があり、Windows Phone でも機能するはずなので、そのままにしておきます。

于 2013-01-18T21:23:06.180 に答える
0

電話してみることができます

button.IsEnabled = false;
button.IsEnabled = true;

ボタンからフォーカスを失う。

于 2013-01-18T19:58:33.783 に答える