因此,我在正在开发的应用程序中设置了文本框的样式,突然间我看不到绑定到文本框的任何文本。我觉得我缺少某种 ContentPresenter。无论如何,这是样式。
<Style TargetType="{x:Type TextBox}">
<Setter Property="Height" Value="26"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
<Border BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
Background="{TemplateBinding Background}">
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Value="#FF2F2F2F" Property="Background"/>
<Setter Value="White" Property="Foreground"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
这是我的文本框的设置方式
<TextBox Grid.Row="2" Grid.Column="5" BorderThickness="1" Text="{Binding VariableName}">
有什么想法吗?
你的预感是对的,你需要一个带有名称的模板部分PART_ContentHost在你的里面ControlTemplate http://msdn.microsoft.com/en-us/library/ms752068.aspx:
<ControlTemplate TargetType="TextBox">
<Border BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
Background="{TemplateBinding Background}">
<ScrollViewer Margin="0"
x:Name="PART_ContentHost" />
<!-- ... -->
这是因为ControlTemplate
for a TextBox
需要具有名称的部分PART_ContentHost
。您可以查看ControlTemplate内置控件的示例 http://msdn.microsoft.com/en-us/library/aa970773找出需要哪些命名模板部件以及每个部件必须能够执行哪些操作才能保留正常功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)