C# WPF TextBox是一种用于创建图形用户界面的工具,而double.PositiveInfinity是一个特殊的数值,表示正无穷大。在默认情况下,当将double.PositiveInfinity赋值给TextBox时,它会显示为"∞"符号,而不是Win10中的文本。
这种行为是由TextBox的默认文本转换器所决定的。要将double.PositiveInfinity显示为文本而不是符号,可以自定义文本转换器。以下是一个示例:
首先,在XAML中定义一个自定义转换器类,例如DoubleToStringConverter:
using System;
using System.Globalization;
using System.Windows.Data;
namespace YourNamespace
{
public class DoubleToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is double)
{
double number = (double)value;
if (double.IsPositiveInfinity(number))
{
return "Infinity";
}
}
return value.ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
然后,在XAML中使用该转换器:
<Window x:Class="YourNamespace.YourWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:YourNamespace"
Title="Your Window" Height="450" Width="800">
<Window.Resources>
<local:DoubleToStringConverter x:Key="DoubleToStringConverter" />
</Window.Resources>
<Grid>
<TextBox Text="{Binding YourDoubleProperty, Converter={StaticResource DoubleToStringConverter}}" />
</Grid>
</Window>
在上述示例中,我们创建了一个名为DoubleToStringConverter的自定义转换器类,它将double.PositiveInfinity转换为"Infinity"文本。然后,在TextBox的Text属性中使用该转换器。
这样,当将double.PositiveInfinity赋值给TextBox时,它将显示为"Infinity"文本,而不是符号。
领取专属 10元无门槛券
手把手带您无忧上云