触发器中的附加行为会导致构建错误

问题描述:

我有一个带有控件模板的样式,我无法编译它。我试图触发附加的行为。如果我把它放在控制模板触发它工作正常...但如果我把它在文本框中触发我得到那个说生成错误:触发器中的附加行为会导致构建错误

上找不到类型 静态成员“SelectAllProperty” “TextBoxBehavior”

这里是我的代码:

<Style x:Key="RenamingTextBox" TargetType="{x:Type TextBox}"> 
       <Style.Setters> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate TargetType="{x:Type TextBox}"> 
           <Grid> 
            <TextBlock x:Name="block" Visibility="Visible" Text="{TemplateBinding Text}" Margin="0"/> 
            <TextBox x:Name="box" Visibility="Collapsed" Text="{TemplateBinding Text}" Margin="0"> 
             <TextBox.Triggers> 
              <Trigger Property="Visibility" Value="Visible"> 
               <Trigger.Setters> 
                <Setter TargetName="box" Property="FocusManager.FocusedElement" Value="{Binding RelativeSource={RelativeSource Self}}"/> 

<!-- This next line gives an error even though it is the same format as the one below --> 
                <Setter Property="behaviors:TextBoxBehavior.SelectAll" Value="True"/> 
               </Trigger.Setters>            
              </Trigger> 
             </TextBox.Triggers> 
            </TextBox> 
           </Grid> 
           <ControlTemplate.Triggers> 
            <DataTrigger Binding="{Binding IsRenaming}" Value="true"> 
             <DataTrigger.Setters> 
              <Setter TargetName="block" Property="TextBox.Visibility" Value="Collapsed" /> 
              <Setter TargetName="box" Property="TextBox.Visibility" Value="Visible" /> 
<!-- Uncommenting below works fine --> 
              <!--<Setter TargetName="box" Property="behaviors:TextBoxBehavior.SelectAll" Value="True"/>--> 
             </DataTrigger.Setters> 
            </DataTrigger> 
           </ControlTemplate.Triggers> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Style.Setters> 
      </Style> 

任何想法,为什么一个给人以生成错误和其他不?

没关系,我需要把触发器的文本框的风格,而不是:

<TextBox x:Name="box" Visibility="Collapsed" Text="{TemplateBinding Text}" Margin="0"> 
            <TextBox.Style> 
             <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}"> 
              <Style.Triggers> 
               <Trigger Property="Visibility" Value="Visible"> 
                <Setter Property="FocusManager.FocusedElement" Value="{Binding RelativeSource={RelativeSource Self}}"/> 
                <Setter Property="behaviors:TextBoxBehavior.SelectAll" Value="True"/> 
               </Trigger> 
              </Style.Triggers> 
             </Style> 
            </TextBox.Style> 
           </TextBox>