我正在使用 Silverlight 4 和 Blend 4。
我有一个(水平)堆栈面板,其中包括一些文本框和一个按钮。堆栈面板设置为拉伸到内容使用的大小。文本框也可以自动调整大小。
当我向文本框添加文本时,文本框大小会增大,堆栈面板也会增大。到目前为止,一切都很好。
当我从文本框中删除文本时,文本框大小会缩小(例外),但堆栈面板大小不会缩小。
当内容(文本框)变小时,是否有任何技巧可以使堆栈面板改变大小?
提前致谢,
坦率
以下是 UserControl 的 XAML:
<Grid x:Name="LayoutRoot">
<StackPanel x:Name="StackPanelBorder" Orientation="Horizontal">
<TextBox x:Name="TextBoxCharacteristicName" TextWrapping="Wrap" Text="Tex">
</TextBox>
<TextBox x:Name="TextBoxSep" TextWrapping="Wrap" Text="=" IsReadOnly="True">
</TextBox>
<Button x:Name="ButtonRemove" Content="-" Click="ButtonAddOrRemove_Click">
</Button>
</StackPanel>
</Grid>
如果您希望 StackPanel 与其内部的项目水平调整大小,则需要将 HorizontalAlignment 从默认值“Stretch”更改为其他值。
默认情况下,stackpanel 会拉伸以填充其父控件的整个空间,因为 HorizontalAlignment 设置为拉伸。这使得它的尺寸难以增大和缩小。
您需要将 HorizontalAlignment 设置为“Left”、“Right”或“Center”。那么堆栈面板的宽度将仅与其内部项目的宽度相同。但请明智地选择,因为堆栈面板随后将停靠到其父控件内的该位置。
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
注意:如果这不能解决您的问题,那么您的父控件有问题,而不是您的 StackPanel。
HorizontalAlignment 的 MSDN 网站 http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.horizontalalignment(VS.95).aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)