我有我的文本框,簡約的風格:風格應該關閉的風格改變文本框時集中
<Style x:Key="PortalFocusVisualStyle" TargetType="TextBox">
<!--<Setter Property="Focusable" Value="False"/>-->
<Setter Property="BorderBrush">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#7FFFFFFF" Offset="1"/>
<GradientStop Color="#3FFFFFFF"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#0CFFFFFF" Offset="0"/>
<GradientStop Color="#26FFFFFF" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
這是我所有的文本框應該是什麼樣子。順便說一句,如果可能的話,密碼框也可以,但我也可以用同樣的方式爲它們做一個新的樣式。
當用戶單擊文本框時,頂部邊界消失得近乎奇怪。 對於Windows 7,似乎這是默認行爲。 但我不想要這個,如果文字框(或密碼框)被關注或不關注,它應該看起來完全相同。
所以我的想法是使用這種風格的風格和focusvisualstyle這樣的:
我的問題仍是關注文本框看起來不一樣。
我試着用visualstates工作,並增加在二傳手模板,我上面的風格:
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox" >
<Grid x:Name="RootElement" Background="{TemplateBinding Background}" >
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="FocusStates">
<VisualState x:Name="Focused"/>
<VisualState x:Name="Unfocused"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
但這是錯誤不知怎麼的,我看到的只是一個空盒子。我不知道我需要添加到網格中,或者如果網格是一個好主意,我無法將VisualState添加到模板中,有人可以幫我解決嗎?
或者也許有一個更簡單的解決方案? 我希望我的文本框和密碼箱具有上述背景和上面的邊框樣式,當它聚焦時,它看起來應該是一樣的,而不是改變邊框等等......
非常感謝! 埃裏克
非常感謝!但是現在文本框的邊界已經完全消失了。必須嘗試解決這個問題,也許它的工作,然後,這個想法看起來不錯.... – user1628064
不要讓它工作。如果我使用上面的代碼,我根本沒有看到邊框。我試圖添加相同的邊框到scrollviewer本身,但我仍然沒有看到它。當我刪除模板時,我會看到我的邊框,但遇到同樣的問題,它在獲得焦點時會在頂部變暗。 – user1628064