读书人

WPF TextBlock自动调整宽度,该如何解决

发布时间: 2012-06-16 20:34:32 作者: rapoo

WPF TextBlock自动调整宽度
假设有XAML布局:

C# code
    <WrapPanel x:Name="mainWrapPanel">    </WrapPanel>

C#代码部分:
C# code
TextBlock txt;private void AddTextBlock(){    txt = new TextBlock();    txt.Backgroud = new SolidColorBrush(Colors.LightBlue);    this.mainWrapPanel.Children.Add(txt);}private void ShortText(){    txt.Text = "abc";}private void LongText(){    txt.Text = "123456767888768765";}private void SetWidth(){    txt.Width = 100;}

调用代码:
C# code
AddTextBlock(); // textblock被加载到界面ShortText(); // textblock内容显示为"abc",textblock的宽度自动调整到"abc"显示宽度LongText(); // textblock内容显示为"123456767888768765",textblock的宽度自动调整到"123456767888768765"显示宽度SetWidth(); // textblock宽度调整为100, 之后无论运行ShortText()或LongText()其宽度都不变了; // AutoWidth() 这里我想用一个方法使textblock(也就是txt)回到之前那样随其Text长度变化而变化的状态,应该怎么做?


请问在调用上面SetWidth()方法之后,如何再实现没有调用之前的那样可以随textblock的Text包含字符长度变化而变化?
需要设置什么属性或方法?(也就是如何实现上面的AutoWidth()方法?)
多谢指教.

[解决办法]
直接设置为 Double.NaN

http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=ZH-CN&k=k(SYSTEM.WINDOWS.FRAMEWORKELEMENT.WIDTH);k(WIDTH);k(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV4.0%22);k(DevLang-CSHARP)&rd=true

读书人网 >C#

热点推荐