티스토리 뷰

C#/WPF

WPF tutorial - xaml의 이벤트

광그로 2017. 6. 20. 14:45

xaml의 이벤트 http://www.wpf-tutorial.com/xaml/events-in-xaml/


대부분 최신 UI framework는 event 중심이며, wpf도 마찬가지이다.


event는 복잡한 주제이므로, wpf에서 event가 작동하는 방식을 살펴보겠습니다.

하지만 지금은 어떻게 control event를 code-behind file에 link하는 지 알아야합니다.

1
2
3
4
5
6
7
8
<Window x:Class="WpfTutorialSamples.XAML.EventsSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="EventsSample" Height="300" Width="300">
        <Grid Name="pnlMainGrid" MouseUp="pnlMainGrid_MouseUp" Background="LightBlue">        
         pnlMainGrid_MouseUp(method)
       </Grid>
</Window>
cs

pnlMainGrid_MouseUp(method)는  code-behind에서 정의되어져야합니다.


1
2
3
4
private void pnlMainGrid_MouseUp(object sender, MouseButtonEventArgs e)
{
        MessageBox.Show("You clicked me at " + e.GetPosition(this).ToString());
}
cs

MouseUp event는 MouseButtonEventHandler라는 delegate(대리자)를 사용합니다.

위 method는 sender(event를 발생시키는 control)과 MouseButtonEventArgs object(유용한 정보를 포함)라는 두개의 parameter는 갖습니다. 


MouseUp, MouseDown은 MouseButtonEventHandler delegate를 사용하지만, MouseMove event는 MouseEventHandler delegate를 사용하는 등 여러 event에서 동일한 delegate 형식을 이용할 수도 있습니다.


<새 이벤트 처리기>를 선택하면 code-behind file에 적절한 이벤트 처리기를 생성합니다.


1
2
3
<Grid Name="pnlMainGrid"  Background="LightBlue">
 
 </Grid>
cs


1
2
3
4
5
6
7
8
9
10
11
12
public MainWindow()
        {
            InitializeComponent();
            pnlMainGrid.MouseUp += new MouseButtonEventHandler(pnlMainGrid_MouseUp);
  += 구문을 이용하여, 이벤트 처리기를 object의 event에 직접 추가합니다.
        }
 
        private void pnlMainGrid_MouseUp(object sender, MouseButtonEventArgs e)
        {
            MessageBox.Show("You clicked me at " + e.GetPosition(this).ToString());
 
        }

cs






'C# > WPF' 카테고리의 다른 글

WPF tutorial - Resource  (0) 2017.06.20
WPF tutorial - Command-line parameters in WPF  (2) 2017.06.20
WPF tutorial - App.xaml로 작업하기  (0) 2017.06.20
WPF tutorial - window  (0) 2017.06.20
WPF tutorial - xaml이란, xaml 기본  (0) 2017.06.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함