wpf TempLateBinding得问题

可爱的爽爽儿 2009-03-24 02:38:01
我想在屏幕显示Label,鼠标移上去变成textBox ,具体代码如下
<Style x:Key="LabelTemp" TargetType="Label">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Label">
<Grid>
<TextBox x:Name="tb" Text="{TemplateBinding Content}" Visibility="Hidden" Width="40" Height="20"
HorizontalAlignment="Center" VerticalAlignment="Top" FontSize="12"></TextBox>
<Label x:Name="lab" Content="{TemplateBinding Content}" Width="40" Height="30"
HorizontalAlignment="Center" VerticalAlignment="Bottom" FontSize="12" ></Label>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="tb" Property="Visibility" Value="Visible">
</Setter>
<Setter TargetName="lab" Property="Visibility" Value="Hidden"></Setter>

</Trigger>

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

可是如何是改变了TextBox的值怎么使Label改变,我想应该是TempLateBinding绑定到TextBox上
但和Binding不一样,请高手指教,
...全文
915 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
可爱的爽爽儿 2009-03-24
  • 打赏
  • 举报
回复
试试,谢谢
cppfaq 2009-03-24
  • 打赏
  • 举报
回复
[code=XAML]<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
<Window.Resources>
<Style x:Key="LabelTemp" TargetType="Label">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Label">
<Grid >
<TextBox x:Name="tb" Text="{TemplateBinding Content}" Visibility="Hidden" Width="40" Height="20"
HorizontalAlignment="Center" VerticalAlignment="Top" FontSize="12"></TextBox>
<Label x:Name="labReal" Content="{TemplateBinding Content}" Width="40" Height="30"
HorizontalAlignment="Center" VerticalAlignment="Top" FontSize="12" ></Label>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="tb" Property="Visibility" Value="Visible">
</Setter>
<Setter TargetName="labReal" Property="Visibility" Value="Hidden"></Setter>
</Trigger>
<Trigger Property="IsMouseOver" Value="false">
<Setter TargetName="labReal" Property="Content" Value="{Binding ElementName=tb,Path=Text}"></Setter>
</Trigger>

</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="104*" />
<ColumnDefinition Width="174*" />
</Grid.ColumnDefinitions>
<Label Name="lab" Style="{StaticResource LabelTemp}" VerticalAlignment="Top">Demo Label
</Label>
</Grid>
</Window>
[/code]

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧