我遇到的问题是,如果我将文本框的宽度设置为 70 以下,它将无法完全显示。我已将 设为MinWidth0,但TextBox仍显示为下图中下方的文本框。上面的宽度我设置为70,它完全显示。我需要在模板中更改某些内容才能使其正常工作吗?有任何想法吗?
<TextBox
Width="30"
Height="50"
MinWidth="0" />
Run Code Online (Sandbox Code Playgroud)
我还尝试在 Visual Studio 的设计器中编辑模板TextBox。我单击“编辑模板”,但没有任何反应,但它与其他控件一起工作正常。
我的原始代码:我将第一个文本框的宽度设置为 50,其余设置为 70。
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" Margin="10,0">
<controls:DropShadowPanel
BlurRadius="40"
ShadowOpacity="0.3"
Color="{StaticResource blueColor}">
<TextBox
Width="50"
x:Name="Code0"
Height="80"
MinWidth="0"
Background="White"
BorderBrush="{StaticResource blueColor}"
BorderThickness="1"
CornerRadius="10"
FontSize="55"
TextAlignment="Center" />
</controls:DropShadowPanel>
</Grid>
<Grid Grid.Column="1" Margin="10,0">
<controls:DropShadowPanel
BlurRadius="40"
ShadowOpacity="0.3"
Color="{StaticResource blueColor}">
<TextBox
Width="70"
x:Name="Code1"
Height="80"
MinWidth="0"
Background="White"
BorderBrush="{StaticResource blueColor}"
BorderThickness="1"
CornerRadius="10"
FontSize="55"
TextAlignment="Center" />
</controls:DropShadowPanel>
</Grid>
...
Run Code Online (Sandbox Code Playgroud)
更新:
<controls:DropShadowPanel
BlurRadius="40"
Width="80"
Background="Red"
ShadowOpacity="0.3"
Color="{StaticResource blueColor}">
<TextBox
x:Name="Code0"
Width="50"
Height="80"
MinWidth="0"
MaxWidth="65"
Background="White"
BorderBrush="{StaticResource darkText}"
BorderThickness="1"
CornerRadius="10"
HorizontalContentAlignment="Center"
FocusVisualPrimaryBrush="{StaticResource blueColor}"
FocusVisualSecondaryBrush="{StaticResource blueColor}"
FontSize="55"
KeyDown="TwoFactorKeyDown"
TextAlignment="Center" />
</controls:DropShadowPanel>
Run Code Online (Sandbox Code Playgroud)
UWP无法将文本框的宽度降低到小于70
红圈区域是TextBox边框。所以如果你只是MinHeight属性MinWidth, 边框不会改变TextControlThemeMinHeight。TextControlThemeMinWidthMinWidthMinWidth
<Border x:Name="BorderElement"
Background="{TemplateBinding Background}"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
CornerRadius="{TemplateBinding CornerRadius}"
Grid.ColumnSpan="2" Grid.Column="0"
Control.IsTemplateFocusTarget="True"
MinHeight="{ThemeResource TextControlThemeMinHeight}"
MinWidth="{ThemeResource TextControlThemeMinWidth}"
Grid.RowSpan="1"
Grid.Row="1"/>
Run Code Online (Sandbox Code Playgroud)
如果您想完全更改 TextBox 的最小宽度,您可以在页面资源中添加以下内容
<Page.Resources>
<x:Double x:Key="TextControlThemeMinHeight">32</x:Double>
<x:Double x:Key="TextControlThemeMinWidth">0</x:Double>
</Page.Resources>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
426 次 |
| 最近记录: |