使用mvvm在wpf中应用内部阴影效果后,无法在文本框中输入值

时间:2012-09-12 08:30:05

标签: wpf mvvm

在我的示例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>

但是在应用这些效果后,我无法在文本框中输入值。

请告诉我代码是否正确。

1 个答案:

答案 0 :(得分:3)

您已替换默认模板,但未在任何位置提供以显示内容。您的模板仅包含Borders

如果您查看default TextBox template,可以看到它定义了一个名为PART_ContentHost的命名部分,用于获取内容。尝试将其添加到模板中。

<ScrollViewer Margin="0" x:Name="PART_ContentHost"/>