【问题标题】:How to set two alignment in wrappanel如何在 wrappanel 中设置两个对齐
【发布时间】:2011-10-01 19:48:42
【问题描述】:

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

【问题讨论】:

    标签: c# wpf xaml layout wrappanel


    【解决方案1】:

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

        <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;
        }
    

    【讨论】:

    • 您的解决方案运行良好,虽然有点复杂。
    • 是的,它不是默认内置的,所以需要做一些工作。 Sill 比替代方案更容易,即编写自己的布局面板(尽管该选项至少可以重复使用)
    猜你喜欢
    • 2011-10-24
    • 2013-05-19
    • 2013-09-05
    • 1970-01-01
    • 2012-12-07
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多