728x90
728x170

화면하단에 StatusBar 를 이용해 시계를 표시하는 코드입니다.

 

using System;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Controls.Primitives;

using System.Windows.Threading;

 

namespace WpfApp

{

    /// <summary>

    /// MainWindow.xaml에 대한 상호 작용 논리

    /// </summary>

    public partial class MainWindow : Window

    {

        /// <summary>

        /// 시간 상태바 아이템입니다.

        /// </summary>

        StatusBarItem timeStatusBarItem;

 

        public MainWindow()

        {

            InitializeComponent();

 

            DockPanel panel = new DockPanel();

            Content = panel;

 

            // 클라이언트 영역의 아래쪽에 도킹된 상태바를 만든다.

            StatusBar status = new StatusBar();

            panel.Children.Add(status);

            DockPanel.SetDock(status, Dock.Bottom);

 

            // StatusBarItem를 만든다.

            timeStatusBarItem = new StatusBarItem();

            timeStatusBarItem.HorizontalAlignment = HorizontalAlignment.Right;

            status.Items.Add(timeStatusBarItem);

 

            // StatusBarItem을 갱신하기 위한 타이머를 만든다.

            DispatcherTimer timer = new DispatcherTimer();

            timer.Interval = TimeSpan.FromSeconds(1);

            timer.Tick += TimerOnTick;

            timer.Start();

 

            // 화면 중앙에 RichTextBox 를 만든다.

            RichTextBox richTextBox = new RichTextBox();

            panel.Children.Add(richTextBox);

        }

 

        /// <summary>

        /// 타이머 동작 이베트입니다.

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="args"></param>

        void TimerOnTick(object sender, EventArgs args)

        {

            DateTime dt = DateTime.Now;

            this.timeStatusBarItem.Content = dt.ToLongDateString() + " " + dt.ToLongTimeString();

        }

    }

}

 

 

 

 

728x90
그리드형
Posted by kjun
,