2012-03-13 60 views
1

我想在焦點時顯示圍繞文本框的焦點圖像。所以我創建了以下風格焦點圖像在文本框上第一次不起作用

<Style x:Key="TextBoxFocusVisualStyle"> 
      <Setter Property="Control.Template"> 
       <Setter.Value> 
        <ControlTemplate> 
         <Image Source="/WPFApp;component/Resources/txtFocus.png" Stretch="Fill" Margin="-8,-6,-8,-6"/> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

和窗口的XAML文件,我用這種風格如下

<TextBox Grid.Column="1" Height="34" Margin="186,48,0,0" Name="txtEmailId" VerticalAlignment="Top" KeyboardNavigation.TabIndex="0" MaxWidth="293" HorizontalAlignment="Left" Width="293" Text="" FocusVisualStyle="{DynamicResource TextBoxFocusVisualStyle}"/> 

,但問題是,它不加載期間的工作。當窗口加載,然後最初焦點在該文本框,並在那時它不顯示圖像。但是,當我導航到其他文本框(和其他控制),然後它顯示焦點圖像。最後當我焦點返回到該文本框然後它顯示焦點圖像

所以問題是,它不顯示焦點圖像第一次在窗口加載時。請建議我錯在哪裏。

+0

也許你可以在文本框的默認樣式MSDN上看看,請檢查是否焦點視覺樣式連接到焦點事件或isfocused屬性。顯示圖像,但即使我設置的背景屬性爲白色 – Silvermind 2012-03-13 08:15:14

回答

0

請注意,FocusVisualStyle僅適用於通過鍵盤(TAB鍵)進行聚焦時的控件。

這是你獲得例如邏輯焦點採用

Control.SetFocus() 

有關重點概述不同看一看

http://msdn.microsoft.com/en-us/library/aa969768.aspx

您的問題可能的解決方法就是工作與DependencyProperty IsFocused使用樣式代替FocusVisualStyle

<Style x:Key="TextBoxStyle" TargetType="{x:Type Control}"> 
     <Style.Triggers> 
      <Trigger Property="IsFocused" Value="True"> 
       <Setter Property="Control.Template"> 
        <Setter.Value> 
         <ControlTemplate> 
          <Image Stretch="Fill" Margin="-8,-6,-8,-6" Source="/WPFApp;component/Resources/txtFocus.png" /> 
         </ControlTemplate> 
        </Setter.Value> 
       </Setter> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 

然後在主窗口

<TextBox Grid.Column="1" Height="34" Margin="186,48,0,0" Name="txtEmailId" 
    VerticalAlignment="Top" KeyboardNavigation.TabIndex="0" MaxWidth="293" 
        HorizontalAlignment="Left" Width="293" Text="" 
        Style="{DynamicResource TextBoxFocusVisualStyle}" Background="White" /> 

希望這HEPS

+0

着眼現在,也許這可以幫助 <控件模板> <圖像拉伸=「填充」保證金=「 - 8,-6, -8,-6「Source =」/ WPFApp; component/Resources/txtFocus.png「 < ControlTemplate> – Rupesh 2012-03-14 07:26:53

+0

右邊文字框裏不出現 – Klaus78 2012-03-14 08:10:22

+0

對於遲到的回覆感到抱歉。上面的代碼工作,但在這種情況下字體大小太小,光標不顯示 – Rupesh 2012-03-21 17:06:31

相關問題