1

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

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

请让我知道我的代码是否正确。

4

1 回答 1

3

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

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

<ScrollViewer Margin="0" x:Name="PART_ContentHost"/>
于 2012-09-12T08:37:58.980 回答