첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

728x90
반응형

TestProject.zip
다운로드

▶ MainWindow.cs

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;

namespace TestProject
{
    /// <summary>
    /// 메인 윈도우
    /// </summary>
    public class MainWindow : Window
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
        ////////////////////////////////////////////////////////////////////////////////////////// Public

        #region 생성자 - MainWindow()

        /// <summary>
        /// 생성자
        /// </summary>
        public MainWindow()
        {
            Title = "CommandBinding 클래스 사용하기";

            Width  = 800;
            Height = 600;

            FontFamily = new FontFamily("나눔고딕코딩");
            FontSize   = 16;

            Button button = new Button();

            button.HorizontalAlignment = HorizontalAlignment.Center;
            button.VerticalAlignment   = VerticalAlignment.Center;
            button.Padding             = new Thickness(5);
            button.Command             = ApplicationCommands.Paste;
            button.Content             = ApplicationCommands.Paste.Text;

            Content = button;

            CommandBindings.Add
            (
                new CommandBinding
                (
                    ApplicationCommands.Paste,
                    Paste_Executed,
                    Paste_CanExecute
                )
            );
        }

        #endregion

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Static
        //////////////////////////////////////////////////////////////////////////////// Public

        #region 프로그램 시작하기 - Main()

        /// <summary>
        /// 프로그램 시작하기
        /// </summary>
        [STAThread]
        public static void Main()
        {
            Application application = new Application();

            application.Run(new MainWindow());
        }

        #endregion

        ////////////////////////////////////////////////////////////////////////////////////////// Instance
        //////////////////////////////////////////////////////////////////////////////// Protected

        #region 마우스 다운시 처리하기 - OnMouseDown(e)

        /// <summary>
        /// 마우스 다운시 처리하기
        /// </summary>
        /// <param name="e">이벤트 인자</param>
        protected override void OnMouseDown(MouseButtonEventArgs e)
        {
            base.OnMouseDown(e);

            Title = "CommandBinding 클래스 사용하기";
        }

        #endregion

        //////////////////////////////////////////////////////////////////////////////// Private

        #region 붙여넣기 실행시 처리하기 - Paste_Executed(sender, e)

        /// <summary>
        /// 붙여넣기 실행시 처리하기
        /// </summary>
        /// <param name="sender">이벤트 발생자</param>
        /// <param name="e">이벤트 인자</param>
        private void Paste_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            Title = Clipboard.GetText();
        }

        #endregion
        #region 붙여넣기 실행 가능 여부 체크시 처리하기 - Paste_CanExecute(sender, e)

        /// <summary>
        /// 붙여넣기 실행 가능 여부 체크시 처리하기
        /// </summary>
        /// <param name="sender">이벤트 발생자</param>
        /// <param name="e">이벤트 인자</param>
        private void Paste_CanExecute(object sender, CanExecuteRoutedEventArgs e)
        {
            e.CanExecute = Clipboard.ContainsText();
        }

        #endregion
    }
}
728x90
반응형
Posted by 사용자 icodebroker
TAG , ,

댓글을 달아 주세요