【发布时间】:2021-09-08 18:30:37
【问题描述】:
嘿,我正在使用 XAML 代码为我的 WPF 应用程序中的文本框设计一种新样式。文本框是文本框和文本块的组合,我使用文本块在文本为空时显示文本框的名称,在填充文本时消失,但是当我运行应用程序并在文本框中填充内容时出现问题似乎它工作正常,但是在后端,当我想访问文本框文本时,即使它已填充,它也是空的!!!! 我是从基地做错了什么还是我错过了一些事情。
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type TextBox}"
x:Key="TextBoxTheme">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Border CornerRadius="10"
Background="#353340"
Width="200"
Height="40">
<Grid>
<Rectangle StrokeThickness="1"/>
<TextBox Margin="1"
Text="{TemplateBinding Property=Text}"
BorderThickness="0"
Background="Transparent"
VerticalAlignment="Center"
Padding="5"
Foreground="#CFCFCF"
x:Name="textBox"/>
<TextBlock IsHitTestVisible="False"
Text="{TemplateBinding Name}"
VerticalAlignment="Center"
HorizontalAlignment="Left"
Margin="10, 0, 0, 0"
FontSize="11"
Foreground="DarkGray">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding Text, ElementName=textBox}" Value="">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
<Setter Property="Visibility" Value="Hidden"/>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
【问题讨论】:
-
在
ControlTemplate中为TextBox使用TextBox不是一个好主意。UserControl与ControlTemplate中的内容有关?
标签: c# wpf xaml data-binding styles