开发者

How to use an accesskey on a WPF Button with a custom ContentTemplate?

Scenario:

Currently I have this XAML code:

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

Obviously the ac开发者_StackOverflow社区cesskey (the 'c' key: _Cancel) doesn't work in combination with the TextBlock. I actually think the TextBlock should be a ContentPresenter (below), but this crashes my Visual Studio 2010 instance every time.

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

Question:

  • What's the best solution to use accesskeys on a WPF Button with a ContentTemplate?

Thanks in advance!


Instead of TextBlock use AccessText thus:

<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 should be used inside a ControlTemplate to display content according to a DataTemplate. If you use it within a DataTemplate it causes infinite recursion as the DataTemplate is invoked over and over again.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜