繁体   English   中英

C# WPF - Material Design 文本框的问题

[英]C# WPF - Problem with Material Design Textbox

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

首先我开始了 Material Design 的 Demo,在那里你可以看到你可以使用什么东西等等。 所以在快速浏览之后,我发现了一个漂亮的 TextBox,上面有一个边框和一个 Checkbox。 要复制的代码是这样的

<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,我删除了 CheckBox 的代码并在我的应用程序中实现了其余部分。 所以现在的代码是这样的:

<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 项目

  • 安装MaterialDesignThemes 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>

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

我遇到了同样的问题,结果您实际上是在编辑文本框,填充只是将文本隐藏在边距中。

这对我有用:

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

另外,不要设置 Textbox 的 Height 属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM