Visual Studio | WPF > 구현: 디자인 타임과 런타임 윈도우 크기 차이 해결 > XAML 지원

운영 환경
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와 같은 디자인 타임의 크기로 하지만
  • 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>
    

    디자인 타임





    런타임





    비고



    매일 다양한 디자인 자료를 만들고 있는 사람들은 픽셀 단위로 위화감을 느낄지도 모른다.

    그 외, 많은 유저에 대해서는 위화감은 적을 것이다.

    좋은 웹페이지 즐겨찾기