2015-06-04 53 views
0
<Style TargetType="{x:Type TextBox}"> 
    <Setter Property="SnapsToDevicePixels" Value="True" /> 
    <Setter Property="OverridesDefaultStyle" Value="True" /> 
    <Setter Property="KeyboardNavigation.TabNavigation" Value="None" /> 
    <Setter Property="FocusVisualStyle" Value="{x:Null}" /> 
    <Setter Property="MinWidth" Value="120" /> 
    <Setter Property="MinHeight" Value="25" /> 
    <Setter Property="AllowDrop" Value="true" /> 
    <Setter Property="FontSize" Value="16"/> 
    <Setter Property="FontFamily" Value="Arial"/> 
    <Setter Property="VerticalContentAlignment" Value="Center"/> 
    <Setter Property="VerticalAlignment" Value="Bottom"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type TextBoxBase}"> 
       <Border Name="Border" CornerRadius="6" Padding="2" BorderBrush="Black" BorderThickness="2,1"> 
        <ScrollViewer Margin="0" x:Name="PART_ContentHost" /> 
       </Border> 
       <ControlTemplate.Triggers> 




       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

上面的代碼目前是我的文本框。我在ControlTemplate.Trigger中放置了什麼,以便我的邊框從黑色變成藍色,或者在點擊時增加邊框的大小。我已經嘗試了一些沒有任何運氣的東西。這包括style.Triggers和事件。請發佈ControlTemplate.Trigger之間的代碼。ControlTemplate觸發器

+0

你試過幾件事情,比如說什麼? –

+0

我在上面提到過。就像使用style.trigger和某種事件一樣。我基本上嘗試了http://stackoverflow.com/questions/26769314/style-triggers-vs-controltemplate-triggers和https://msdn.microsoft.com/en-us/library/ms750947(v=vs。 110).aspx和https://msdn.microsoft.com/en-us/library/system.windows.controls.controltemplate.triggers%28v=vs.110%29.aspx,但無法做到這一點。 – netgen

回答

0

這裏假設您希望邊框在聚焦時進行更改,因爲單擊文本框會將其聚焦。沒有可用的OnClick屬性,這會在您將注意力集中到一個文本框的邊框上。

<Trigger Property="IsKeyboardFocusWithin" 
     Value="True"> 
    <Setter Property="BorderBrush" 
      TargetName="Border" 
      Value="Blue"/> 
</Trigger> 

編輯:

簡單地刪除焦點,下面MouseDown事件處理程序添加到您的窗口或頁面:

MouseDown="Window_MouseDown"

而且在後面的代碼:

private void Window_MouseDown(object sender, MouseButtonEventArgs e) 
    { 
     Keyboard.ClearFocus(); 
    } 

這將正確刪除重點從您的TextBox,因此取消觸發器再次有黑條。

+0

謝謝,這工作。如果我點擊了,我如何恢復正常? – netgen

+0

那麼,只要你的鍵盤焦點消失,它應該返回正常的顏色。如果你有另一個文本框,你點擊進入後,這是否工作? –

+0

是的,它的確如此。我想到了這一點,但我想,我希望它不顯示,如果他們點擊屏幕上的某個地方。我猜想這一刻它並不重要。 – netgen