4

下の写真のようなラップパネルを入手するにはどうすればよいですか?2つのボタン<>とテキストブロックが左に整列し、テキストボックスが右に整列します。ウィンドウの幅のサイズを変更すると、テキストボックスは新しい行に自動的に折り返されます。

4

1 に答える 1

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>

次に、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;
    }
于 2011-07-09T11:24:20.813 に答える