2012-02-28 103 views
1

我想在文本框獲得焦點時將圖像設置爲邊框。我知道如何設置邊框的顏色,當文本框獲得焦點如下將文本框的邊框圖像設置爲焦點

<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> 

,但我怎麼可以將圖像設置爲邊框或圍繞一個文本框。

回答

2
<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

1

我會隱藏默認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>