のサイズを変更する際、私はサイズを変更することができますWPFウィンドウを持って間違ってリサイズされた:グリッドは、メインウィンドウ
<Window x:Class="WpfTester.BadResize"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="BadResize"
Height="300"
Width="600"
MinWidth="600">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MinWidth="250" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Left Panel" />
<GridSplitter Grid.Column="1"
ResizeDirection="Columns"
Width="3"
HorizontalAlignment="Stretch" />
<TextBox Grid.Column="2"
TextWrapping="Wrap"
Text="Test text test text test text test text test text test text test text test text test text text test text test text test text" />
</Grid>
</Window>
このウィンドウには、左と右のパネルでグリッドとそれらの間のGridSplitterを持っています。 私はプログラムを実行します。
その後、私は、次の手順を実行します。
- は
- 移動をラップテキストは言葉もなくテキストボックスに収まるようにできるように右に右ウィンドウの境界線のサイズを変更最も左側にあるGridSpliiter(この手順は重要です)
- 右端の枠の境界を左に戻し始めます。これは、[OK]を動作していれば、テキストはテキストボックス、ワードラップに適合しないいったんテキストはテキストボックス
- に合うよう要求されたテキストボックスが完全にリサイズされたテキストボックスには、この方法をリサイズ停止し、窓の外に行く:
グリッドスプリッタを使用してレイアウトを配置する方法を教えてください。テキストボックスがウィンドウの外に出ないようにしてください。
はい、動作します。しかし、このグリッドの2番目の列に8-10個のテキストボックスまたはテキストブロックがある場合、このようにレイアウトを構成するとFormatLine関数に時間がかかるため、サイズ変更は極端に遅くなります。同じ10個のテキストボックスをコピーして貼り付け、いくつかのグリッドにまとめて、アプリを実行し、GridSpliiterを最も左に移動して、ウィンドウのサイズを変更してみてください。 GridSpliiterを一番左に動かすと遅くなります。 WPFのバグと思われます。 –
私はちょうど(UniformGridと20 + TextBoxesで)試しましたが、遅くなったとは言えません。私はUniformGridに 'Width =" {ActualWidth、ElementName = test、Mode = OneWayをバインドする " – ASh