【发布时间】:2015-09-07 10:39:36
【问题描述】:
我创建了一个继承自 WPF TextBox 的自定义控件。
我的控件模板只需在文本框上添加一个小按钮,以便更快地删除其文本。
但是,我注意到当我的文本框获得焦点时,它的边框不会像经典文本框那样改变(蓝色)。
我会保留原始文本框的所有方面,就像控件获得焦点时的边框一样。
我错过了什么吗?
@@编辑
<TextBox x:Class="XTextBox.WKTextBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
Height="23" Width="200"
>
<TextBox.Resources>
<ControlTemplate x:Key="IconButton" TargetType="{x:Type ToggleButton}">
<Border>
<ContentPresenter />
</Border>
</ControlTemplate>
</TextBox.Resources>
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Grid>
<Border BorderThickness="1" BorderBrush="DarkGray">
<ScrollViewer x:Name="PART_ContentHost" />
</Border>
<ToggleButton Template="{StaticResource IconButton}"
MaxHeight="21"
Margin="-1,0,0,0"
Name="imgButton"
Focusable="False"
IsChecked="False">
<Image Name="imgClearText" Source="Images\x.png" Stretch="Uniform" Opacity="0.5" Visibility="Visible" HorizontalAlignment="Right" >
</Image>
</ToggleButton>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TextBox.Style>
【问题讨论】:
-
请添加一些细节并显示您修改后的代码,以便更容易理解问题所在。
-
您添加了一个边框设置为 DarkGray 的网格,这不会隐藏包含的编辑框边框吗?
-
没有。设置为 DarkGray 的边框似乎不是问题。如果我删除边框,我将看不到我的文本框。