C#WPF-材料设计文本框问题



我是编程新手,开始申请上学。为此,我使用C#WPF,为了一个好看的应用程序,我安装了Material Design。

首先,我开始了材料设计演示,在那里你可以看到你可以使用什么东西,等等。所以在快速浏览后,我发现了一个很好的TextBox,上面有一个边框和一个复选框

<StackPanel>
<CheckBox x:Name="MaterialDesignOutlinedTextFieldTextBoxEnabledComboBox"
Margin="32,0,0,8" IsChecked="True">
Enabled
</CheckBox>
<TextBox Height="100" VerticalAlignment="Top" Margin="32,0,0,0"
TextWrapping="Wrap" AcceptsReturn="True"
VerticalScrollBarVisibility="Auto"
Style="{StaticResource MaterialDesignOutlinedTextFieldTextBox}"
materialDesign:HintAssist.Hint="This is a text area"
IsEnabled="{Binding Path=IsChecked, ElementName=MaterialDesignOutlinedTextFieldTextBoxEnabledComboBox}" />
</StackPanel>

因为我只需要文本框,所以我删除了复选框的代码,并在应用程序中实现了其余部分。所以现在的代码是这样的:

<TextBox Height="100" Margin="32,0,0,0" VerticalAlignment="Top"
TextWrapping="Wrap" AcceptsReturn="True"
VerticalScrollBarVisibility="Auto"
Style="{StaticResource MaterialDesignOutlinedTextFieldTextBox}"
materialDesign:HintAssist.Hint="This is a text area" />

现在的问题是,我无法编辑文本框。我想TextBox链接到了CheckBox,因为我删除了它,不知怎么的,我不能再在里面写了。它在标准文本框中工作得很好,但对于复制的代码,我什么都做不了,只看到带圆角边框的文本框。

那么,有人能帮助我吗?我如何在编辑文本框时实现带有此边框的文本框等等?我现在不知道有什么解决办法,所以如果有人能帮我的话,我将不胜感激。

谢谢你的帮助。

尝试遵循他们的超级快速入门指南。

以下是使用TextBox:的修改版本

  • 启动新的WPF项目

  • 安装材料设计主题nuget:Install-Package MaterialDesignThemes

  • 将App.xaml编辑为以下内容:

    <Application ...>
    <Application.Resources>
    <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
    <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
    <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.DeepPurple.xaml" />
    <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" />
    </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
    </Application.Resources>
    </Application>
    
  • 将MainWindow.xaml编辑为以下内容:

    <Window
    xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
    ...>
    <StackPanel>
    <TextBox
    materialDesign:HintAssist.Hint="Hey, that's pretty good!"
    Style="{StaticResource MaterialDesignOutlinedTextFieldTextBox}" />
    </StackPanel>
    </Window>
    

测试此代码:

Style="{DynamicResource MaterialDesignOutlinedTextFieldTextBox}"

从xaml代码中删除高度。这将是一个问题。

我也遇到了同样的问题,原来你实际上是在编辑文本框,填充只是将文本隐藏在页边空白中。

这对我有效:

TextBox c = new TextBox();
c.VerticalContentAlignment = VerticalAlignment.Center;
c.Padding = new Thickness(0, -10, 0, -10);
c.Foreground = new SolidColorBrush(Colors.Black);

此外,不要设置文本框的Height属性。

最新更新