在我的示例WPF-MVVM应用程序中,我有一个文本框,我已经应用了一些像这样的内部阴影效果
<Style TargetType="{x:Type TextBox}" x:Key="TxtBoxStyle">
<Setter Property="Margin" Value="2,4" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Grid x:Name="txtgrid">
<Border x:Name="txtBorder" CornerRadius="5" Background="LightGray" BorderBrush="DarkGray"
BorderThickness="1" ClipToBounds="True">
<Border Background="Transparent" BorderBrush="Black"
BorderThickness="1" Margin="-2">
<Border.Effect>
<DropShadowEffect ShadowDepth="5" BlurRadius="10"/>
</Border.Effect>
</Border>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
但是在应用这些效果后,我无法在文本框中输入值。
请告诉我代码是否正确。
答案 0 :(得分:3)
您已替换默认模板,但未在任何位置提供以显示内容。您的模板仅包含Borders
。
如果您查看default TextBox template,可以看到它定义了一个名为PART_ContentHost
的命名部分,用于获取内容。尝试将其添加到模板中。
<ScrollViewer Margin="0" x:Name="PART_ContentHost"/>