Visual Studio 2010 で WPF レイアウトを作成するときは、コントロールをツールボックスから既定の要素 (通常はグリッド) にドラッグ アンド ドロップするだけです。これを行うと、Visual Studio に表示される間隔が実行時に表示されるものと一致しません。たとえば、以下はそれぞれ 2 つのレイアウトのビジュアル エディターと実行時の結果です。. .
. . . と 。. .
...間隔が変更されていることに注意してください。
2 つの例で生成された XAML を次に示します。. .
<Button Content="ProjectPattern" Height="23" HorizontalAlignment="Left" Margin="12,296,0,0" Name="butProjPattern" VerticalAlignment="Top" Width="117" Click="butProjPattern_Click" />
<TextBlock Height="22" HorizontalAlignment="Left" Margin="135,0,0,141" Name="ResultProjPattern" Text="(result)" VerticalAlignment="Bottom" Width="41" />
<TextBlock Height="23" HorizontalAlignment="Left" Margin="175,295,0,0" Name="TextBlockPattern" Text=" (pattern file)" Padding="4" VerticalAlignment="Top" Width="135" Background="#FFF1F3FF" />
<Button Content="...browse" Height="23" HorizontalAlignment="Right" Margin="0,294,814,0" Name="buttonPatternBrowse" VerticalAlignment="Top" Width="54" Click="buttonPatternBrowse_Click" />
...と...
<Button Content="Display Cross" Height="24" HorizontalAlignment="Left" Margin="622,108,0,0" Name="buttonCross" VerticalAlignment="Top" Width="117" Click="buttonCross_Click" />
<TextBlock Height="24" HorizontalAlignment="Right" Margin="0,107,344,0" Name="ResultCross" Text="(result)" VerticalAlignment="Top" Width="100" />
<Button Content="Display Diamond" Height="23" HorizontalAlignment="Left" Margin="622,138,0,0" Name="butDiamond" VerticalAlignment="Top" Width="117" Click="butDiamond_Click" />
<TextBlock Height="23" HorizontalAlignment="Right" Margin="0,138,344,0" Name="ResultDiamond" Text="(result)" VerticalAlignment="Top" Width="100" />
<Button Content="DisplayFullField" Height="24" HorizontalAlignment="Left" Margin="622,165,0,0" Name="butFullField" VerticalAlignment="Top" Width="117" />
<TextBlock Height="24" HorizontalAlignment="Right" Margin="0,164,344,0" Name="ResultFullField" Text="(result)" VerticalAlignment="Top" Width="100" />
ボタン ハンドラー、テキスト コンテンツなどを追加しましたが、レイアウトは厳密には Visual Studio レイアウト エディターによって生成されたものです。私が気づいたことの 1 つは、ツールボックスからグリッドにドラッグ アンド ドロップしても、Visual Studio は、さまざまな要素の HorizontalAlignment に "Left" を選択するか "Right" を選択するかについて一貫性がないことです。
コンテナー要素は、既定の Window 内の既定の Grid にすぎません。最小化はできますが、サイズ変更はできません。. .
<Window x:Class="Caller1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="500" Width="1200" ResizeMode="CanMinimize">
<Grid Height="460">
その結果、レイアウトを「微調整」するために、エディターとアプリの実行の間で多くの時間を無駄にする必要があります。"WYSIWYG" レイアウト エディタがランタイム レイアウトと一致しない理由と、それらを対応させるにはどうすればよいですか?
前もって感謝します。