2014-02-14 4 views
0

Я хочу знать, если длина строки больше, чем ширина label, то как настроить строку в новой строке? Строка применяется к ярлыку динамическая.Новая строка в ярлыке Silverlight

Я пробовал использовать Viewbox, но этот вариант не работал. у кого есть идеи?

+0

Лично я угробить все ярлыки, если нет какой-то конкретной цели для него, так как они наследуют от ContentControl в то время как TextBlock прямо из FrameworkElement так что вы получите брить немного бесполезный жир, используя только TextBlock, а также имеют прямой доступ к TextWrapping для таких сценариев. –

ответ

1

Применить TextWrapping="Wrap" к TextBlock

OKS, что-то подобное может работать тогда?

<Label Target="{Binding ElementName="desiredElement"> 
    <TextBlock TextWrapping="Wrap" Text="{Binding YourString}"/> 
</Label> 

Я не нахожу Этикетку очень полезно, хотя, и если это не сработает, было бы гораздо легче заменить этикетку с TextBlock с соответствующим обязательным, чем имитируя это недостающее поведение на нем я считаю.

+2

[Метка] (http://msdn.microsoft.com/en-us/library/system.windows.controls.label (v = vs.110) .aspx) не имеет свойства «TextWrapping». – Alberto

+0

ну, вместо этого используйте TextBlock. Любые конкретные причины использования метки? –

+0

@ValentinKuzub Я печатаю удостоверение личности, которое используется для использования ярлыка. – Prashant16

0

установить значение wrap в TextWrapping. Ниже приведен пример кода для выполнения его для текстового блока:

<TextBlock 
Name="textBlock" 

Background="AntiqueWhite" 
Foreground="Navy" 

FontFamily="Century Gothic" 
FontSize="12" 
FontStretch="UltraExpanded" 
FontStyle="Italic" 
FontWeight="UltraBold" 

LineHeight="Auto" 
Padding="5,10,5,10" 
TextAlignment="Center" 
TextWrapping="Wrap" 

Typography.NumeralStyle="OldStyle" 
Typography.SlashedZero="True" 
> 
<Run Background="LightGreen">Text run 1.</Run> 
<LineBreak/><Run Background="LightBlue">Text run 2.</Run> 
<LineBreak/><Run Background="LightYellow">Text run 3.</Run> 
</TextBlock> 
0

Я попытался это на WPF приложения, так что это должно работать с silverlight также

XAML

<Label Content="{Binding labelname}"> 

недвижимости

private string _labelname; 
    public string labelname 
    { 
     get 
     { 
      return _labelname; 
     } 
     set 
     { 
      _labelname = value; 
      OnPropertyChanged("labelname"); 
     } 
    } 

Присвоить значение профилю Perty переплетены как этот

labelname = "stack" + Environment.NewLine + "overflow"; 
+0

Я уже упоминаю в своем вопросе, что строка является динамической. – Prashant16

Смежные вопросы