首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2012-06-16 
WPF TextBlock自动调整宽度假设有XAML布局:C# codeWrapPanel x:NamemainWrapPanel/WrapPanelC#代码

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

热点排行