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

Kev*_*Bui 5 c# wpf layout xaml wrappanel

我怎样才能得到如下图所示的包装板?两个按钮 < > 和文本块向左对齐,文本框向右对齐,当我调整窗口宽度时,文本框自动换行。

1ad*_*m12 3

这是一种快速但肮脏的方法。

    <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>
Run Code Online (Sandbox Code Playgroud)

然后在 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;
    }
Run Code Online (Sandbox Code Playgroud)