c# - UWP NumberBox 自定义值模板
问题描述
我想要一个如下图所示的数字框,用户可以在其中始终看到最大值[在我的项目中,最小值始终为 1,不需要显示],这可能吗?我该怎么做?
<muxc:NumberBox Name="NumberBoxSpinButtonPlacementExample"
Header="Page"
Value="12" Minimum="1" Maximum="128"
SpinButtonPlacementMode="Compact"
SmallChange="1" LargeChange="10"
Width="100"
VerticalAlignment="Center" HorizontalAlignment="Center"/>
我在这个链接[ WinUI NumberBox Control ]中找到了下面的代码,我想我应该用这个方法,也许不是,我不知道
private DecimalFormatter DutchDecimalFormatter { get; } =
new DecimalFormatter(new[] { "nl-NL" }, "NL")
{
IsGrouped = true,
FractionDigits = 2,
NumberRounder = new IncrementNumberRounder {
Increment = 0.01,
RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp,
}
};
结果 :
<RelativePanel VerticalAlignment="Center" HorizontalAlignment="Center">
<muxc:NumberBox x:Name="nb1"
Header="صفحات"
Value="604" Minimum="1" Maximum="604"
SpinButtonPlacementMode="Compact"
SmallChange="1" LargeChange="10"
Width="100"/>
<Grid RelativePanel.AlignRightWith="nb1" Margin="0,24,30,0" Height="30" Background="#FF666666">
<TextBlock Name="nb1MaxValue" Text="604"
Foreground="White"
Padding="5,0"
VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid>
</RelativePanel>
但是为什么一个数字是英文格式而另一个是波斯语格式!O_O
解决方案
NumberBox 表示可用于显示和编辑数字的控件。
在您的场景中,可以使用数字格式化来格式化 Numberbox 的值,其结果仍然是数字,而不是 12/128 之类的表达式。
我建议您可以编写一个 TextBlock 来通过RelativePanel覆盖 NumberBox,如下所示。
<Page
……
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<RelativePanel BorderBrush="Red" BorderThickness="2" CornerRadius="10" Padding="12">
<muxc:NumberBox x:Name="MyNumberBox"
Header="Page" Value="15"
Minimum="1" Maximum="128"
SpinButtonPlacementMode="Compact"
SmallChange="1" LargeChange="10"
Width="150"
VerticalAlignment="Center"
HorizontalAlignment="Center" d:IsHidden="True"/>
<TextBlock x:Name="MyTextBlock" Text="/128" Margin="50,-30,0,0" RelativePanel.Below="MyNumberBox"/>
</RelativePanel>
</Grid>
</Page>
结果:
推荐阅读
- node.js - React项目编译成功无法从浏览器查看
- javascript - 清理 axios useEffect 函数
- python - 通过python从名称列表中提取最后两个字母
- css - 使用 TailwindCSS 水平定位元素
- android - Flutter:为动态创建的 ui 元素添加标识符(键)
- python - 在python中合并两个逗号分隔的txt文件文件
- angular - rxjs Observable 与预先解析的数据混合
- python - 我应该如何增加我的 python 代码中的分数变量?
- c# - 如何使用子查询在左外连接中转换 lambda
- android - 如何在项目中删除多个版本的 androidx 注释?