레이블이 #WPF메뉴인 게시물을 표시합니다. 모든 게시물 표시
레이블이 #WPF메뉴인 게시물을 표시합니다. 모든 게시물 표시

2019년 1월 26일 토요일

WPF 메뉴, 메뉴아이템, Menu, MenuItem

WPF 메뉴, 메뉴아이템, Menu, MenuItem
​
n 메뉴는 윈도우 응용 프로그램의 대표적인 사용자 인터페이스로 윈도우 창 제목아래 위치하고 보통 윈도우와 같은 폭(Width)을 가진다.
n 텍스트로 구성된 가로방향 리스트로 탑레벨 메뉴를 클릭하면 드롭다운 메뉴 또는 하위 메뉴라고 불리는 다른 항목들의 리스트가 나타나게 된다.
n 클래스 계층구조
System.Windows.Controls.ContentControl
              System.Windows.Controls.MenuItem
              System.Windows.Controls.Menu
n ContentControl에서 파생된 컨트롤은 Content 프로퍼티를 가지는데 Button, Label, Tooltip, ScrollViewer, Listbox, Window등이 있다.
n ItemControl에서 파생된 컨트롤은 객체의 Collection인 Items 프로퍼티를 가지는데 Listbox, ComboBox 등이 해당된다.
n HeaderedItemControl은 ITemsControl로부터 상속받은 프로퍼티 이외에 Header 프로퍼티를 가지고 있는데 메뉴 항목들이 여기에 속한다. MenuItem 객체의 Header 프로퍼티는 텍스트 문자열 또는 작은 비트맵과 함께 정의할 수 있다.
n 각 메뉴항목에는 하위 메뉴의 컬렉션 항목이 포함될 수 있으며 항목은 Items 프로퍼티에 저장된다.
n 만약 탑 레벨의 처음 메뉴가 “File” 이라면 이것이 MenuItem 객체가 되고 Header 프로퍼티는 “File”, Items 속성 컬렉션에는 New, Open Save 등의 메뉴를 나타내는 MenuItem 객체가 들어갈 수 있다.
n ButtonBase 처럼 MenuItem도 Click, Command 이벤트가 있어 마치 버튼처럼 메뉴항목들을 다룰 수 있다. 또한 MenuItem은 체크 표시를 활성화 비활성화 할 수 있는 IsChecked 프로퍼티를 가지며 체크표시를 자동으로 토글 할 수 있는 IsCheckable 속성도 있다.
n Checked 이벤트는 IsChecked 프로퍼티가 false에서 true로 바뀔 때 발생하며 UnChecked 이벤트는 IsChecked 프로퍼티가 true에서 false로 바뀔 때 발생한다.
n 가끔 특정 메뉴항목을 비활성화 시켜야 하는 경우도 발생하는데, 현재 저장할 문서가 없다면 Save 메뉴는 비활성화 되야 할 것이다. 이를 처리하기 위해 하위 메뉴가 나타날 때 비활성화 시키면 되는데 MenuItem은 이를 위해 SubMenuOpened 이벤트를 정의하고 있으면 그안에서 비활성화 시키면 된다.
n 메뉴를 만들때는 대체로 위에서 아래로 진행하는데 아래 예문을 보자.
Menu menu = new Menu();
MenuItem file = new MenuItem();
//대개 첫번째 메뉴는 File 이다. ALT키를 누르고 F를 누르면 하위메뉴가 열린다.
file.Header = “_File”;
menu.Items.Add(file); //첫번째 탑레벨 메뉴 File을 추가.
MenuItem newMenu = new MenuItem();
newMenu.Header = “_New”;
newMenu.Click += NewClick; //New 메뉴 클릭시 이벤트 핸들러 메소드 지정
file.Items.Add(newMenu); //File메뉴 하위에 New 메뉴 추가
[MainWindow.xaml]
<Window x:Class="WpfApp1.MainWindow"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<DockPanel>
<Menu DockPanel.Dock="Top">
<MenuItem Header="_File">
<MenuItem Header="_New" />
<MenuItem Header="_Open" />
<MenuItem Header="_Save" />
<Separator />
<MenuItem Header="_Exit" Click="OnExit" />
</MenuItem>
</Menu>
<TextBox AcceptsReturn="True" />
</DockPanel>
</Window>
[MainWindow.xaml.cs]
using System;
using System.Windows;
​
​
namespace WpfApp1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
​
​
private void OnExit(object sender, RoutedEventArgs e)
{
//Application.Current.Shutdown();
Environment.Exit(0);
}
}
}

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...