C#WPF-材质设计文本框出现问题

时间:2018-11-25 14:48:08

标签: c# wpf material-design

我是编程的新手,因此开始向学校提出申请。为此,我使用C#WPF,并为一个美观的应用程序安装了Material Design。

首先,我启动了材料设计演示,您可以在其中看到可以使用的东西以及可以复制的东西。因此,快速浏览后,我发现了一个不错的TextBox,上面有一个边框和一个Checkbox。要复制的代码是这个

*

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

import java.util.*;

public class PrintTriangle3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("enter number");
        int number = sc.nextInt();
        int i = 1;
        while(i <= number) {
            System.out.println(printLine(number));
            number--;
        }
        i++;
    }

    public static int printLine(int number) {
        for(int j = 1; j <= number; j++) {
            System.out.print("*");
        }
        return number;
    }
}

现在的问题是,我无法编辑文本框。我猜TextBox链接到CheckBox,并且因为我删除了它,所以我不能够再写它了。 在标准文本框上一切正常,但是在复制的代码下我什么也做不了,只是看到带有圆形边框的TextBox。

那么任何人都可以帮助我,如何在具有此边框的情况下实现文本框,等等,并且在我可以对其进行编辑的同时?我现在不知道有什么解决方案,因此,如果有人可以帮助我,我将不胜感激。

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

请尝试遵循其Super Quick Start指南。

以下是使用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>
    

答案 1 :(得分:0)

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

这对我有用:

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

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

答案 2 :(得分:-1)

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