2016-10-26 8 views
0

У меня есть текстовый блок, где весь текст отображается при нажатии кнопки пользователем.Форматирование текста в формате ("###. ##") при нажатии кнопки

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# help, если какой-либо орган знает, что текст в текстовом блоке отображается в «###. ##» только в этом ограниченном формате.

+0

и что это ###. ## format? –

+0

###. ## этот формат для текста, отображаемого в этом формате или ограниченного этими цифрами –

ответ

1

вы можете использовать

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

как

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

The "0" custom format specifier служит символом нулевого заполнителем. Если форматируемое значение имеет цифру в позиции, где в строке формата появляется нуль, эта цифра копируется в результирующую строку; в противном случае в строке результата появляется нуль. Положение самого левого нуля перед десятичной точкой и самый правый ноль после десятичной точки определяет диапазон цифр, которые всегда присутствуют в результирующей строке.

+0

Хорошо, но по этому коду, когда пользователь нажимает на текст кнопки, не отформатированный в моем формате «000.00», я пробую ваш код, но текст показать столько длинного типа пользователем без каких-либо десятичных знаков после трехзначной цифры «000.00» –

+0

Хорошо, я проверяю –

+0

Хорошо, в настоящее время я не с компьютером, как только я проверю, определенно буду отмечать и повышать рабочий ответ –

1

Содержание не является числовым значением, но строка (содержание = «1»)

Так что, если вы хотите конкретный числовой формат, как «###. ##», вы должны преобразовать строку «1 "к числовому типу:

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

Тогда ваш формат будет работать.

Вместо «###. ##» вы, возможно, захотите «000.00»?

+0

Хорошо, я пробовал ваш код, и если работа, я отвечу на ваш ответ –

+0

извините, но я попробовал ваш код, но если я использую 000.00 (например, когда тип 1 показывает 001.00, а затем я набираю следующую цифру, например, 5 он показывает 00.5.00 и удаляет 001.00), но я хочу, чтобы текст текста непрерывно находился в ###. ## (например, 105.56), и если я использую текст ###. ##, просто прост без какого-либо формата и без ограничения этого формата # ##.## –

+0

@ShubhamSahu: Хорошо, но это немного другой вопрос, чем указывает ваш текст. –