Visual Studio | WPF > 実装: デザイン時と実行時のウィンドウサイズの違いの対策 > XAML対応
4534 ワード
動作環境
Windows 8.1 Pro (64bit)
Microsoft Visual Studio 2017 Community
Sublime Text 2
関連
- Visual Studio | WPF > IDE > デザイン時と実行時のウィンドウサイズの違い
- Different size form WPF - Design mode vs Runtime mode
- C# WPF different size from IDE after debugging?
WPF特有の問題なのか、デザイン時と実行時にウィンドウサイズが異なる。
一方で、コントロールの配置は保持されるようで、コントロール右と下のマージンがおかしくなったソフトになる。
対策
Visual Studio | WPF > SizeToContent="WidthAndHeight" > 内容に応じてウィンドウサイズを変更してくれる
を使う。
XAMLで以下のように記載する。
-
Gridの中にGridを作る
- 元にあるGridと同じデザイン時のサイズにするが、
- GUIで元のGridと同じサイズにするとWidthとHeight属性の表記が消失するため手入力する。
- デザイン時のサイズに合うように目視しながらWidthとHeightの値を決める
- 適当なサイズのGridを配置した上で、表示されるマージン値を参考に再度サイズを手入力してもよい
コントロールを配置していく
コード例
MainWindow.xaml
<Window x:Class="_171207_t0936_controlLocation.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:_171207_t0936_controlLocation"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525"
SizeToContent="WidthAndHeight">
<Grid>
<!-- 実行時とデザイン時のウィンドウサイズの違い回避のため、-->
<!-- SizeToContent=WidthAndHeightと合わせて -->
<!-- 下記のGrid内でコントロールを配置すること -->
<Grid Height="320" Width="515" Margin="0,0,0,0">
<Button Content="Button" HorizontalAlignment="Left"
Margin="430,10,0,0" VerticalAlignment="Top" Width="75"/>
</Grid>
</Grid>
</Window>
デザイン時
実行時
備考
日々様々なデザイン資料を作っているような人たちはピクセル単位での違和感を感じるかもしれない。
その他、多くのユーザに対しては違和感は少ないだろう。
Author And Source
この問題について(Visual Studio | WPF > 実装: デザイン時と実行時のウィンドウサイズの違いの対策 > XAML対応), 我々は、より多くの情報をここで見つけました https://qiita.com/7of9/items/ccc7a20d253440bdc8c4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .