C# 如何将WPF按钮上的accesskey与自定义ContentTemplate一起使用?
场景: 目前我有以下XAML代码:C# 如何将WPF按钮上的accesskey与自定义ContentTemplate一起使用?,c#,.net,wpf,xaml,access-keys,C#,.net,Wpf,Xaml,Access Keys,场景: 目前我有以下XAML代码: <Button Content="_Cancel" IsCancel="True" Command="{Binding Path=CancelCommand}" Margin="5"> <Button.ContentTemplate> <DataTemplate> <TextBlock Margin="10,0,10,0" /> </DataTemplate&
<Button Content="_Cancel" IsCancel="True" Command="{Binding Path=CancelCommand}" Margin="5">
<Button.ContentTemplate>
<DataTemplate>
<TextBlock Margin="10,0,10,0" />
</DataTemplate>
</Button.ContentTemplate>
</Button>
显然,accesskey(“c”键:_Cancel)不能与TextBlock组合使用。实际上,我认为TextBlock应该是ContentPresenter(如下所示),但这每次都会使我的VisualStudio2010实例崩溃
<ContentPresenter Margin="10,0,10,0" RecognizesAccessKey="True" />
问题:
- 在带有ContentTemplate的WPF按钮上使用AccessKey的最佳解决方案是什么
提前谢谢 使用
AccessText
代替TextBlock
,因此:
<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>
另外,ContentPresenter
应在ControlTemplate
中使用,以根据DataTemplate
显示内容。如果在DataTemplate
中使用它,则会在反复调用DataTemplate
时导致无限递归