Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何减少文本框的维数_Wpf_Xaml_Material Design In Xaml - Fatal编程技术网

Wpf 如何减少文本框的维数

Wpf 如何减少文本框的维数,wpf,xaml,material-design-in-xaml,Wpf,Xaml,Material Design In Xaml,我使用的是MDIX框架,它提供了一个名为MaterialDesignTextFieldBoxTextBox的Style资源。当我应用这个样式时,我会得到一个非常大的文本框的尺寸: <TextBox materialDesign:HintAssist.Hint="Search" Style="{StaticResource MaterialDesignTextFieldBoxTextBox}" /> (我不知道为什么图像没有出现。) 不管怎样,我想降低控件的高度。我尝试使用以下

我使用的是
MDIX
框架,它提供了一个名为
MaterialDesignTextFieldBoxTextBox
Style
资源。当我应用这个样式时,我会得到一个非常大的
文本框的尺寸:

<TextBox materialDesign:HintAssist.Hint="Search" Style="{StaticResource MaterialDesignTextFieldBoxTextBox}" />

(我不知道为什么图像没有出现。)

不管怎样,我想降低控件的高度。我尝试使用以下代码:

 <TextBox materialDesign:HintAssist.Hint="{DynamicResource search}">
     <TextBox.Resources>
       <Style TargetType="TextBox" BasedOn="{StaticResource MaterialDesignTextFieldBoxTextBox}">
           <Setter Property="Height" Value="30" />
       </Style>
     </TextBox.Resources>
 </TextBox>

这样,
提示将消失:

如何处理此问题?

使用MDIX v2.4.0(最新版本)

如果您不做任何更改而单独查看样式,则会得到如下结果:

这里有三种MDIX样式值得一看:

  • MaterialDesignTextBox
    是MDIX中的
  • materialdesignfloatinghintextbox
    源于
    MaterialDesignTextBox
    和。这是上面图像中浮动的蓝色“搜索”文本
  • MaterialDesignTextAreaTextBox
    源自
    materialdesignfloatinghintextbox
    手动将高度设置为较短的最大问题是文本框周围的灰色区域。当您设置
    textfieldsassist.HasTextAreaBox=true
    时,该选项将打开。当该属性设置为true时,该区域就是一个简单的区域。特别注意边距和填充设置器。这些都是关于特定最小尺寸的假设。 另一个问题是
    hintasist.IsFloating=true
    。当您设置此选项时,它将围绕用于显示提示的文本框

    启用这两个属性后,您将无法将文本框的大小减小到30,并且仍然可以使用所有这些功能。您可以简单地将其关闭,但此时只剩下基本
    MaterialDesignTextBox
    样式

    我想这正是你想要的

    <TextBox materialDesign:HintAssist.Hint="Search">
        <TextBox.Resources>
            <Style TargetType="TextBox" BasedOn="{StaticResource MaterialDesignTextBox}">
                <Setter Property="Height" Value="30" />
            </Style>
        </TextBox.Resources>
    </TextBox>
    
    
    
    如果要启用浮动提示或文本区域边框,则需要增加高度

    编辑: 如果要模拟文本区域边框的外观,可以将文本框包装成如下边框:

    <Border CornerRadius="4" Background="{DynamicResource MaterialDesignTextFieldBoxBackground}" Padding="0,0,0,4">
        <TextBox materialDesign:HintAssist.Hint="Search">
            <TextBox.Resources>
                <Style TargetType="TextBox" BasedOn="{StaticResource MaterialDesignTextBox}">
                    <Setter Property="Height" Value="30" />
                </Style>
            </TextBox.Resources>
        </TextBox>
    </Border>
    
    
    
    我会仔细阅读源代码,看看它的功能。这里有一个论坛,如果你的意思是希望mdix的人在这里回答,我添加了mdix标记,以防他们不访问stackoverflow(亵渎!)。你可能还想考虑在他们通常会挂的任何论坛中张贴。你只需要编辑你所引用的样式模板。从外观上看,他们可能只是在他们的模板中有一个硬设置的填充,它切断了其中的ContentPresenter,这就是你的提示消失的原因。尝试将
    添加到覆盖中。否则,您需要查看它们的模板结构。@ChrisW。已尝试,结果相同。因此,在高度较低的
    材质设计TextFieldBoxTextBox
    上是否不可能?如何使
    MaterialDesignTextBox
    为灰色,并且具有与
    MaterialDesignTextFieldBoxTextBox
    相同的角半径?谢谢。你可以把文本框用看起来很相似的边框包装起来。我用一个例子来编辑我的回答。最后一个问题:是否可以删除文本框的水平灰线?