Architect's Log

I'm a Cloud Architect. I'm highly motivated to reduce toils with driving DevOps.

Popupでフローティングウィンドウを実装する

アプリ実行

起動


[表示]をチェック


[表示]のチェックを外す


ソースコード

App.xaml
<Application x:Class="HelloWorld.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
</Application>
MainWindow.xaml
<Window x:Class="HelloWorld.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel>
        <CheckBox Click="CheckBox_Click">表示</CheckBox>
        <Popup PopupAnimation="Fade"
               Placement="Mouse"
               Name="popup">
            <StackPanel Background="White">
                <TextBlock>Hello World</TextBlock>
            </StackPanel>
        </Popup>
    </StackPanel>
</Window>
MainWindow.xaml.cs
using System.Windows;
using System.Windows.Controls;

namespace HelloWorld {
    public partial class MainWindow : Window {
        public MainWindow() {
            InitializeComponent();
        }

        private void CheckBox_Click(object sender, RoutedEventArgs e) {
            this.popup.IsOpen = ((CheckBox)sender).IsChecked ?? false;
        }
    }
}

参考

Popup クラス (System.Windows.Controls.Primitives)
コンテンツがあるポップアップ ウィンドウを表します。 ...