积极答复者
silverlight 多行显示问题

问题
答案
-
xaml:
<StackPanel x:Name="Txt" ScrollViewer.HorizontalScrollBarVisibility="Auto"/>
C#:
{
TextBlock A = new TextBlock();
A.Text = "111";
A.Foreground = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
Txt.Children.Add(A);
A = null;
TextBlock B = new TextBlock();
B.Text = "222";
B.Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 255, 0));
Txt.Children.Add(B);
B = null;
TextBlock C = new TextBlock();
C.Text = "333";
C.Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 0, 255));
Txt.Children.Add(C);
C = null;
}
需要换行加:A.TextWrapping=TextWrapping.Wrap- 已标记为答案 Allen Chen - MSFTModerator 2009年8月6日 2:56
全部回复
-
TextBlock控件不能实现自动换行吗?
设置TextWrapping属性为Wrap可以强制换行。
还有可以使用run内联标签不但能换行,而且格式控制很灵活的。
例如下面语句
<TextBlock Canvas.Top="100" Canvas.Left="100"> <Run TextDecorations="underline">helloRun</Run>
<Run Foreground="Purple"> just for MVC</Run>
</TextBlock>
还有一种方法使用linebreak方法
<TextBlock> abc <LineBreak/> ddd <LineBreak/> vvv <LineBreak/> ddds </TextBlock>
这些应该能满足你的要求吧 -
TextBlock控件不能实现自动换行吗?
谢谢答复,我的文字是在方法里动态赋值的,改增么写呢,而且是赋值多次,需要自动换行并累加,随意我还有一个要求是每次追加的字符串使用不同的颜色显示,谢谢
设置TextWrapping属性为Wrap可以强制换行。
还有可以使用run内联标签不但能换行,而且格式控制很灵活的。
例如下面语句
<TextBlock Canvas.Top="100" Canvas.Left="100"> <Run TextDecorations="underline">helloRun</Run>
<Run Foreground="Purple"> just for MVC</Run>
</TextBlock>
还有一种方法使用linebreak方法
<TextBlock> abc <LineBreak/> ddd <LineBreak/> vvv <LineBreak/> ddds </TextBlock>
这些应该能满足你的要求吧 -
xaml:
<StackPanel x:Name="Txt" ScrollViewer.HorizontalScrollBarVisibility="Auto"/>
C#:
{
TextBlock A = new TextBlock();
A.Text = "111";
A.Foreground = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
Txt.Children.Add(A);
A = null;
TextBlock B = new TextBlock();
B.Text = "222";
B.Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 255, 0));
Txt.Children.Add(B);
B = null;
TextBlock C = new TextBlock();
C.Text = "333";
C.Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 0, 255));
Txt.Children.Add(C);
C = null;
}
需要换行加:A.TextWrapping=TextWrapping.Wrap- 已标记为答案 Allen Chen - MSFTModerator 2009年8月6日 2:56
-
xaml:
<StackPanel x:Name="Txt" ScrollViewer.HorizontalScrollBarVisibility="Auto"/>
C#:
{
TextBlock A = new TextBlock();
A.Text = "111";
A.Foreground = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
Txt.Children.Add(A);
A = null;
TextBlock B = new TextBlock();
B.Text = "222";
B.Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 255, 0));
Txt.Children.Add(B);
B = null;
TextBlock C = new TextBlock();
C.Text = "333";
C.Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 0, 255));
Txt.Children.Add(C);
C = null;
}
需要换行加:A.TextWrapping=TextWrapping.Wrap
感谢 -
/// <summary>
/// 为TextBlock换行
/// </summary>
/// <param name="source">需要换行的TextBlock</param>
/// <param name="Text">换行字符串</param>
public void AddRow(TextBlock source, string Text,SolidColorBrush colorbrush)
{
Run _run = new Run();
_run.Text = Text;
_run.Foreground = colorbrush;
LineBreak _break = new LineBreak();//添加一个换行符
source.Inlines.Add(_run);
source.Inlines.Add(_break);
}
你可以设置_run的字体样式(大小、颜色、字体等)