Wpf ContentControl更改GotFocus上的ContentTemplate

Wpf ContentControl更改GotFocus上的ContentTemplate,wpf,user-controls,wpf-controls,Wpf,User Controls,Wpf Controls,我有一个UserControl,它包含一个ContentControl。当用户单击此ContentControl时,我想更改其ContentTemplate,使其“可编辑”(而不是标签显示文本框)。 我所拥有的是: <StackPanel> <ContentControl Style="{DynamicResource ContainerStyleEditable}" GotFocus="ContentControl_GotFocus"></ContentC

我有一个UserControl,它包含一个
ContentControl
。当用户单击此
ContentControl
时,我想更改其
ContentTemplate
,使其“可编辑”(而不是标签显示文本框)。 我所拥有的是:

<StackPanel>
    <ContentControl Style="{DynamicResource ContainerStyleEditable}" GotFocus="ContentControl_GotFocus"></ContentControl>
</StackPanel>

在userControl资源中,我有

<Style TargetType="{x:Type ContentControl}" x:Key="ContainerStyleEditable">
    <Setter Property="ContentTemplate" Value="{DynamicResource ItemTemplateReadOnly}" />
    <Style.Triggers>
        <Trigger Property="IsFocused" Value="True">
            <Setter Property="ContentTemplate" Value="{DynamicResource ItemTemplateEditable}" />
        </Trigger>
    </Style.Triggers>
</Style>


这不起作用,似乎
GotFocus
事件从未触发。实现这一点的方法是什么?

我通常将
iskeyboardfocus的触发器设置在
内,而不是
IsFocused
,因为焦点元素通常不是实际的
ContentControl
,而是它的
内容中的一个控件

另外,请确保
ContentControl
中至少有一个控件可以接受焦点,以便该控件可以获得焦点。如果控件中没有任何东西可以接受焦点,则触发器将永远不会触发