7

シナリオ:

現在、私はこのXAMLコードを持っています:

<Button Content="_Cancel" IsCancel="True" Command="{Binding Path=CancelCommand}" Margin="5">
   <Button.ContentTemplate>
      <DataTemplate>
         <TextBlock Margin="10,0,10,0" />
      </DataTemplate>
   </Button.ContentTemplate>
</Button>

明らかに、アクセスキー('c'キー:_Cancel)はTextBlockと組み合わせて機能しません。実際、TextBlockはContentPresenter(下記)である必要があると思いますが、これによりVisualStudio2010インスタンスが毎回クラッシュします。

<ContentPresenter Margin="10,0,10,0" RecognizesAccessKey="True" />

質問:

  • ContentTemplateを使用してWPFボタンでアクセスキーを使用するための最良の解決策は何ですか?

前もって感謝します!

4

1 に答える 1

10

TextBlockこのように使用する代わりにAccessText:

<Button Content="_Cancel" IsCancel="True" Command="{Binding Path=CancelCommand}" Margin="5">
   <Button.ContentTemplate>
      <DataTemplate>
         <AccessText Margin="10,0,10,0" Text="{Binding}"/>
      </DataTemplate>
   </Button.ContentTemplate>
</Button>

PS。に従ってコンテンツを表示するには、ContentPresenter内で使用する必要があります。a 内で使用すると、が何度も呼び出されるため、無限再帰が発生します。ControlTemplateDataTemplateDataTemplateDataTemplate

于 2011-09-14T12:43:57.670 に答える