日期:2014-05-18  浏览次数:20774 次

WPF窗口紧凑显示控件
我定义了一个窗口,在XAML代码中,去掉了窗口的Width和Height属性,在窗口中加入以下控件:
<Window x:Class="BomSystem.Pages.ApplyUnit.Insert_ChangeWindow"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  WindowStyle="None" ResizeMode="NoResize">
  <DockPanel LastChildFill="False">
  <StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
  <Label Height="25">ID</Label>
  <TextBox Height="25" Width="100"></TextBox>
  <Button Height="25">OK</Button>
  </StackPanel>
</Window>
我的目的就是想显示出一个Label紧挨着一个TextBox再紧挨着一个Button,窗口没有其他多余的部分,就是一小条那样,但是现在调用之后显示出来的却是一个很大的窗口,只有在窗口最上边一小条显示了我需要的内容,其余部分全都是空白。
请问我应该设置什么属性才能让窗口不自动变得那么大,只需要能够显示其内部控件就行了?
谢谢指教!
如果我表述不清楚,请帮忙copy以上代码,直接运行就行了,弹出一个非常大非常不舒服的窗口,我只希望显示一小条这样的窗口,就像在xaml编辑界面看到的那样,而我又不想设置width或height等属性,因为假如我改变Label的值如变成("abcdefghi:"),窗口的width等参数就要重新调整,非常麻烦,而且效果也不一定好,请问应该怎么操作,谢谢!!

------解决方案--------------------
可以不把窗体的Width和Height属性写死,而绑定一个值,比如其下容器的宽度和高度值

试试用WrapPane布局,当到达指定宽度时会自动换行
------解决方案--------------------
不写Width和Height,
窗体就会有一个默认的Width和Height,
想改变这个大小,
可以指定最大宽度和高度
<Window x:Class="BomSystem.Pages.ApplyUnit.Insert_ChangeWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowStyle="None" ResizeMode="NoResize"
MaxHeight="50" MaxWidth="200">
------解决方案--------------------
Set the Window's property .SizeToContent to "WidthAndHeight". This should help.
设置Window的SizeToContent属性为WidthAndHeight。这样应该可以。