如何在wrappanel中设置两个对齐方式

时间:2011-07-09 10:16:38

标签: c# wpf xaml layout wrappanel

我如何获得像下面的照片一样的包装?两个按钮< >和textblock对齐到左边,文本框对齐到右边,当我调整窗口宽度时,文本框自动换行到新行。

1 个答案:

答案 0 :(得分:2)

这是一种快速而肮脏的方式。

    <WrapPanel Orientation="Horizontal" SizeChanged="WrapPanel_SizeChanged">
        <TextBlock x:Name="DateTextBlock" TextWrapping="Wrap" MinWidth="280"><Run Text="July 03-09, 2011"/></TextBlock>
        <TextBox x:Name="SearchTextBox" Width="250"  HorizontalAlignment="Right" />
    </WrapPanel>

然后在你的WrapPanel_SizeChanged处理程序中,你只需要使DataTextBlock尽可能宽 - 与面板一样宽,而不是搜索文本框的宽度。

    private void WrapPanel_SizeChanged(object sender, System.Windows.SizeChangedEventArgs e)
    {
        var panel = (WrapPanel)sender;

        var maxWidth = panel.ActualWidth - SearchTextBox.ActualWidth;
        DateTextBlock.Width = maxWidth;
    }