C# WPF - Material Design 文本框问题

Cod*_*oob 5 c# wpf material-design

我是编程新手,开始申请学校。为此,我使用 C# WPF,为了获得美观的应用程序,我安装了 Material Design。

首先,我开始了 Material Design 的演示,在这里你可以看到你可以使用哪些东西等等,以及可以复制的东西。因此,快速查看后,我发现了一个漂亮的文本框,带有边框,其顶部有一个复选框。要复制的代码是这样的

<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>
Run Code Online (Sandbox Code Playgroud)

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

<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" />
Run Code Online (Sandbox Code Playgroud)

现在的问题是,我无法编辑文本框。我猜 TextBox 链接到了 CheckBox,因为我删除了它,所以我无法再在其中写入。这一切都可以与标准文本框配合使用,但使用复制的代码我无法执行任何操作,只需查看带有圆形边框的文本框即可。

那么任何人都可以帮助我,如何在我可以编辑它的同时实现带有此边框的文本框等等?我现在不知道有什么解决方案,所以如果有人可以帮助我,我将不胜感激。

感谢您的帮助。

Jan*_* Go 4

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

下面是它的修改版本,使用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>
    
    Run Code Online (Sandbox Code Playgroud)
  • 将 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>
    
    Run Code Online (Sandbox Code Playgroud)

  • 我这样做了,但它也不起作用。一旦我实现 Style="{StaticResource MaterialDesignOutlinedTextFieldTextBox}" 我就无法再在 TextBox 中写入。也许知道我在 UserControl 中定义 TextBoxes 很有用...但是我定义了 Resources 和所有像《入门指南》中告诉我的东西 (3认同)