求一WPF TextBox Style
lgg06 2008-06-25 11:36:59 想要的效果是这样的:
一开始看上去是像TextBlock, 没有边框,背景色跟父亲容器, 当Mouse Over时样式像TextBox 有边框可编辑其text内容,编辑后鼠标移开后显示的是编辑后的text(也就是源数据随之修改)。
自己刚学WPF于是胡乱写了一个:
<Style x:Key="textStyle" TargetType="{x:Type TextBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<TextBlock Text="{TemplateBinding Property=Text}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<TextBox Text="{TemplateBinding Property=Text}" Background="{TemplateBinding Property=Background}" />
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Color="AliceBlue"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
这样外观效果是达到预期了,但是鼠标移上去修改TextBox内容后,不会修改到绑定的源数据,不是我想要的效果。