【问题标题】:Text formating in ("###.##") format on button click单击按钮时以 ("###.##") 形式格式化文本
【发布时间】:2017-03-08 11:12:43
【问题描述】:

我有一个文本块,所有文本都显示在用户点击按钮上。

XAML

<TextBlock x:Name="TextDisplay" TextAlignment="Center"
                       Style="{StaticResource PhoneTextTitle1Style}" />


<Button Style="{StaticResource MyButtonStyle}" Content="1" Click="Number_Click" />
<Button Style="{StaticResource MyButtonStyle}" Content="2" Click="Number_Click" />
<Button Style="{StaticResource MyButtonStyle}" Content="3" Click="Number_Click" />
<Button Style="{StaticResource MyButtonStyle}" Content="4" Click="Number_Click" />
<Button Style="{StaticResource MyButtonStyle}" Content="5" Click="Number_Click" />
<Button Style="{StaticResource MyButtonStyle}" Content="6" Click="Number_Click" />
<Button Style="{StaticResource MyButtonStyle}" Content="7" Click="Number_Click" />
<Button Style="{StaticResource MyButtonStyle}" Content="8" Click="Number_Click" />
<Button Style="{StaticResource MyButtonStyle}" Content="9" Click="Number_Click" />
<Button Style="{StaticResource MyButtonStyle}" Content="0" Click="Number_Click" />

当用户点击按钮内容时,我希望在文本块中显示按钮内容,但仅限于这种有限的格式(“###.##”)。

C#

    private void Number_Click(object sender, RoutedEventArgs e)
    {
        Button b = (Button)sender;
        TextDisplay.Text += b.Content.ToString("###.##");
    }

但当我删除“###.##”代码时,ToString 上显示错误,但按钮可以无限点击。

平台:windows phone silverlight app /c# 如果有人知道在文本块中以“###.##”这种有限的格式显示文本,请提供帮助。

【问题讨论】:

  • 这个###.##格式是什么?
  • ###.## this format for text to display in this format or limited to this numbers

标签: c# windows-phone-8 textblock windows-phone-silverlight


【解决方案1】:

你可以使用

String.Format("{0:000.00}", value);

喜欢

TextDisplay.Text += String.Format("{0:000.00}", b.Content);

The "0" custom format specifier 用作零占位符符号。如果正在格式化的值在格式字符串中出现零的位置有一个数字,则该数字将复制到结果字符串中;否则,结果字符串中将出现零。小数点前最左边的零和小数点后最右边的零的位置决定了结果字符串中始终存在的数字范围。

【讨论】:

  • 好的,但是当用户单击按钮文本未以我给定的格式“000.00”格式化时,通过此代码,我尝试使用您的代码,但文本显示用户的长度类型与三位数后没有任何小数“ 000.00"
  • 好的,我正在检查
  • 好的,目前我不在电脑上,一旦我检查,我肯定会标记并支持工作答案
  • TextDisplay.Text = String.Format("{0:###.##}", b.content);作品
  • 您的第一个答案是正确的,我制作了两个处理程序,一个用于按钮单击以将按钮内容显示到文本块,另一个用于单击按钮后应用程序执行的操作,然后我删除按钮单击事件并合并按钮单击事件代码到第一个然后你的代码工作
【解决方案2】:

内容不是数值而是字符串(content = "1")

所以如果你想要一个特定的数字格式,比如“###.##”,你应该将字符串“1”转换为数字类型:

double.Parse(b.Content.ToString()).ToString("###.##")

然后您的格式将起作用。

您可能想要“000.00”而不是“###.##”?

【讨论】:

  • 好的,我正在尝试你的代码,如果有效,我会支持你的答案
  • 抱歉,我试过你的代码,但如果我使用 000.00(例如,当输入 1 时它显示 001.00,然后我输入下一个数字,例如 5 它显示 00.5.00 并删除 001.00)但我想输入文本连续在###.##(例如105.56)中,如果我使用###.##文本显示简单,没有任何格式且不限于此格式###.##
  • @ShubhamSahu:好的,但这与您的文字所指的问题略有不同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-26
  • 1970-01-01
  • 2012-09-06
  • 2013-08-16
  • 1970-01-01
相关资源
最近更新 更多