将文本框的边框图像设置为焦点

将文本框的边框图像设置为焦点

问题描述:

我想在文本框获得焦点时将图像设置为边框。我知道如何设置边框的颜色,当文本框获得焦点如下将文本框的边框图像设置为焦点

<Style TargetType="{x:Type TextBox}"> 
      <Style.Triggers> 
       <Trigger Property="IsFocused" Value="True"> 
        <Setter Property="BorderThickness" Value="2.20" /> 
        <Setter Property="BorderBrush" Value="#f8cb1c" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 

,但我怎么可以将图像设置为边框或围绕一个文本框。

<Style x:Key="TextBoxStyle1" BasedOn="{x:Null}" TargetType="{x:Type TextBox}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type TextBox}"> 
        <Microsoft_Windows_Themes:ListBoxChrome x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" RenderMouseOver="{TemplateBinding IsMouseOver}" RenderFocused="{TemplateBinding IsKeyboardFocusWithin}" SnapsToDevicePixels="true"> 
         <Grid> 
          <Image x:Name="imgctrl" Stretch="Fill"/> 
          <ScrollViewer x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> 
         </Grid> 
        </Microsoft_Windows_Themes:ListBoxChrome> 
        <ControlTemplate.Triggers> 
         <Trigger Property="IsEnabled" Value="false"> 
          <Setter Property="Background" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/> 
          <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/> 
         </Trigger> 
         <Trigger Property="IsFocused" Value="True"> 
          <Setter Property="Source" TargetName="imgctrl" Value="5.jpg"/> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
+0

用你的方法,我将此样式用于焦点图像。感谢您提出建议 – Rupesh 2012-03-12 08:42:34

我会隐藏默认TextBox边框,并将其放置在含有所需的边框图像的Image的顶部,并显示ImageTextBox选择

<Style x:Key="BorderImageStyle" TargetType="{x:Type Image}"> 
    <Setter Property="IsVisible" Value="False" /> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding ElementName=SomeTextBox, Path=IsKeyboardFocusWithin}" Value="True"> 
      <Setter Property="IsVisible" Value="True" /> 
     </DataTrigger> 
</Style> 


<Grid> 
    <Image x:Name="BorderImage" ... /> 
    <TextBox x:Name="SomeTextBox" BorderThickness="0" Margin="20" ... /> 
</Grid>