我的WPF程序设计出了一个问题。我的XAML看起来像这样:
<StackPanel Orientation="{Binding Orientation}">
<Border ... />
<Border ... />
<Border ... />
<Border Margin="2"
VerticalAlignment="Stretch"
CornerRadius="3"
Padding="4">
<WrapPanel>
<TextBlock VerticalAlignment="Center"
Text="Time Range:"
Width="66" />
<controls:WinFormsWrapper EndDateTime="{Binding EndDateTime,Mode=TwoWay}"
InitialEndDateTime="{Binding InitialEndDateTime}"
InitialStartDateTime="{Binding InitialStartDateTime}"
StartDateTime="{Binding StartDateTime,Mode=TwoWay}"/>
</WrapPanel>
</Border>
<Border ... />
</StackPanel>
在WrapPanel里面,你可以看到我的WinFormsWrapper。在我的视图模型中,我得到了一个属性Orientation
,它将决定如何定向StackPanel。如果方向设置为vertical
,我希望WrapPanel现在水平填充整个控件,反之亦然。
有谁知道这样做的好方法吗?
编辑:属性类型为"System.Windows.Controls.Orientation
",取值为"System.Windows.Controls.Orientation.Vertical
"one_answers"System.Windows.Controls.Orientation.Horizontal
"
如果将Background
设置为WrapPanel
,则面板为全尺寸。
我认为你应该使用DockPanel
而不是你的WrapPanel
与属性值LastChildFill="True"
。
您的错误来自无效的值。为Orientation
属性设置有效的起始值
private Orientation orientation = Orientation.Horizontal;