ウィンドウのサイズを内容に合わせる

2021-03-14

MainWindow.xaml

<Window x:Class="WpfApp17.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:WpfApp17"
        mc:Ignorable="d"
        Title="MainWindow" Height="250" Width="400"
        WindowStartupLocation="CenterScreen">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="30"/>
        </Grid.RowDefinitions>

        <TextBox Grid.Row="0" AcceptsReturn="True" Text="{Binding Text}" />
        <Button Grid.Row="1" Content="確認" Click="Button_Click" />
    </Grid>
</Window>

MainWindow.xaml.cs

using System.Windows;

namespace WpfApp17
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        public string Text { get; set; } = "";

        public MainWindow()
        {
            InitializeComponent();

            this.DataContext = this;
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            ResultWindow objResultWindow = new ResultWindow()
            {
                Message = Text
            };

            objResultWindow.ShowDialog();
        }
    }
}

ResultWindow.xaml

<Window x:Class="WpfApp17.ResultWindow"
        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:WpfApp17"
        mc:Ignorable="d"
        Title="ResultWindow" Height="450" Width="800"
        WindowStartupLocation="CenterScreen"
        SizeToContent="WidthAndHeight">
    
    <TextBlock Text="{Binding Message}">
        
    </TextBlock>
</Window>

ResultWindow.xaml.cs

using System.Windows;

namespace WpfApp17
{
    /// <summary>
    /// ResultWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class ResultWindow : Window
    {
        public string Message { get; set; } = "";

        public ResultWindow()
        {
            InitializeComponent();

            this.DataContext = this;
        }
    }
}