ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2010.8.27 WPF에서 팝업창 비슷하게 다른 WPF 윈도우창 에 띄우기
    예전 글들/.NET, C# 2010. 8. 27. 17:19
    반응형

    App.cs 파일
    using System.IO;

    namespace WpfApplication3
    {
        /// <summary>
        /// App.xaml에 대한 상호 작용 논리
        /// </summary>
        public partial class App : Application
        {

            private List<Document> documents = new List<Document>();

                
            public List<Document> Documents
            {
                get
                {
                    return documents;
                }
                set
                {
                    documents = value;
                }
            }      
        }
    }

    메인 화면 소스

    namespace WpfApplication3
    {
        /// <summary>
        /// Window5.xaml에 대한 상호 작용 논리
        /// </summary>
        public partial class Window5 : Window
        {
            public Window5()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, RoutedEventArgs e)
            {
                Document doc = new Document();
                doc.Owner = this;
                doc.Show();
                ((App)Application.Current).Documents.Add(doc);  // 이 부분이 중요

            }

            private void button2_Click(object sender, RoutedEventArgs e)
            {
                foreach (Document doc in ((App)Application.Current).Documents)
                {
                    doc.SetContent("Refreshed at" + DateTime.Now.ToLongTimeString() + ".");
                }
            }
        }
    }

    다른 화면 소스

    namespace WpfApplication3
    {
        /// <summary>
        /// Document.xaml에 대한 상호 작용 논리
        /// </summary>
        public partial class Document : Window
        {
            public Document()
            {
                InitializeComponent();
            }

            public void SetContent(string content)
            {
                this.Content = content;
            }
        }
    }

    반응형

    댓글

Designed by Tistory.