■ ImageEdit 클래스의 팝업 창에서 컨텍스트 메뉴 표시 여부를 설정하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using DevExpress.XtraEditors; ImageEdit imageEdit = new ImageEdit(); imageEdit.Properties.ShowMenu = false; imageEdit.Properties.ShowMenu = true; |
■ PictureEdit 클래스를 사용해 컨텍스트 메뉴에서 확대/축소 메뉴 표시 여부를 설정하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using DevExpress.Utils; using DevExpress.XtraEditors; PictureEdit pictureEdit = new PictureEdit(); pictureEdit.Properties.ShowZoomSubMenu = DefaultBoolean.Default; pictureEdit.Properties.ShowZoomSubMenu = DefaultBoolean.False; pictureEdit.Properties.ShowZoomSubMenu = DefaultBoolean.True; |
■ PictureEdit 클래스의 Properties.ShowMenu 속성을 사용해 컨텍스트 메뉴 표시 여부를 설정하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using DevExpress.XtraEditors; PictureEdit pictureEdit = new PictureEdit(); pictureEdit.Properties.ShowMenu = false; pictureEdit.Properties.ShowMenu = true; |
■ DockLayoutManager 클래스의 ContextMenuCustomizations 속성을 사용해 커스텀 컨텍스트 메뉴를 추가하는 방법을 보여준다. ▶ 예제 코드 (XAML)
|
<dxd:DockLayoutManager.ContextMenuCustomizations> <dxb:BarButtonItem x:Name="aboutBarButtonItem" dxb:BarItemLinkActionBase.ItemLinkIndex="0" CategoryName="Help" Content="About" ItemClick="aboutBarButtonItem_ItemClick" /> <dxb:InsertBarItemLinkAction ItemLinkIndex="1"> <dxb:BarItemLinkSeparator /> </dxb:InsertBarItemLinkAction> </dxd:DockLayoutManager.ContextMenuCustomizations> |
※ xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars" ※ xmlns:dxd="http://schemas.devexpress.com/winfx/2008/xaml/docking"
■ Bar 엘리먼트에서 메인 메뉴를 설정하는 방법을 보여준다. ▶ 예제 코드 (XAML)
|
<dxb:Bar x:Name="mainMenuBar" Caption="Main Menu" IsMainMenu="True"> <dxb:Bar.DockInfo> <dxb:BarDockInfo ContainerType="Top"/> </dxb:Bar.DockInfo> </dxb:Bar> |
※ xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
■ ImageEdit 엘리먼트의 MenuTemplate 속성을 사용해 이미지 메뉴를 정의하는 ControlTemplate를 설정하는 방법을 보여준다. ▶ 예제 코드 (XAML)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
<Grid xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"> <dxe:ImageEdit Name="imageEdit"> <dxe:ImageEdit.MenuTemplate> <ControlTemplate> <StackPanel Orientation="Horizontal"> <dxe:ImageEditToolButton ToolTip="Grayscale" ImageSource="/HowToCustomizeTheImageEditorMenu;component/Image/inactive.png" Click="grayscaleImageEditToolButton_Click" /> <dxe:ImageEditToolButton ToolTip="Normal" ImageSource="/HowToCustomizeTheImageEditorMenu;component/Image/active.png" Click="normalImageEditToolButton_Click" /> <dxe:ImageEditToolSeparator /> <dxe:ImageEditCopyToolButton /> <dxe:ImageEditLoadToolButton /> <dxe:ImageEditSaveToolButton /> </StackPanel> </ControlTemplate> </dxe:ImageEdit.MenuTemplate> </dxe:ImageEdit> </Grid> |
■ TableView 엘리먼트의 TotalSummaryMenuCustomizations 속성을 사용해 TOTAL SUMMARY 컨텍스트 메뉴에서 특정 메뉴 항목을 제거하는 방법을 보여준다. ▶ 예제 코드 (XAML)
|
<dxg:TableView ShowTotalSummary="True"> <dxg:TableView.TotalSummaryMenuCustomizations> <dxb:RemoveBarItemAndLinkAction ItemName="{x:Static dxg:DefaultSummaryMenuItemNames.Customize}" /> </dxg:TableView.TotalSummaryMenuCustomizations> </dxg:TableView> |
■ TableView 엘리먼트의 ColumnMenuCustomizations 속성을 사용해 컬럼 컨텍스트 메뉴에서 커스텀 메뉴 항목을 추가하는 방법을 보여준다. ▶ 예제 코드 (XAML)
|
<dxg:TableView ShowTotalSummary="True"> <dxg:TableView.ColumnMenuCustomizations> <dxb:BarCheckItem x:Name="checkedBarCheckItem" Content="Checked" IsChecked="True" dxb:BarItemLinkActionBase.ItemLinkIndex="0" /> <dxb:BarItemLinkSeparator dxb:BarItemLinkActionBase.ItemLinkIndex="1" /> </dxg:TableView.ColumnMenuCustomizations> </dxg:TableView> |
■ TableView 엘리먼트의 행/셀 컨텍스트 메뉴에서 셀 값 복사하는 방법을 보여준다. ▶ 예제 코드 (XAML)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
<dxg:GridControl x:Name="gridControl"> <dxg:GridControl.Columns> <dxg:GridColumn FieldName="UserName" Header="User Name" /> <dxg:GridColumn FieldName="RegistrationDate" Header="Registration Date" /> </dxg:GridControl.Columns> <dxg:GridControl.View> <dxg:TableView x:Name="tableView"> <dxg:TableView.RowCellMenuCustomizations> <dxb:BarButtonItem x:Name="deleteRowBarButtonItem" Content="Delete Row" ItemClick="deleteRowBarButtonItem_ItemClick" /> <dxb:BarButtonItem x:Name="copyCellDataBarButtonItem" Content="Copy Cell Data" ItemClick="copyCellDataBarButtonItem_ItemClick" /> </dxg:TableView.RowCellMenuCustomizations> </dxg:TableView> </dxg:GridControl.View> </dxg:GridControl> |
▶ 예제 코드 (C#)
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
using DevExpress.Xpf.Bars; using DevExpress.Xpf.Grid; #region Delete Row 바 버튼 항목 항목 클릭시 처리하기 - deleteRowBarButtonItem_ItemClick(sender, e) /// <summary> /// Delete Row 바 버튼 항목 항목 클릭시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void deleteRowBarButtonItem_ItemClick(object sender, ItemClickEventArgs e) { GridCellMenuInfo gridCellMenuInfo = this.tableView.GridMenu.MenuInfo as GridCellMenuInfo; if(gridCellMenuInfo != null && gridCellMenuInfo.Row != null) { int rowHandle = gridCellMenuInfo.Row.RowHandle.Value; this.tableView.DeleteRow(rowHandle); } } #endregion #region Copy Cell Data 바 버튼 항목 항목 클릭시 처리하기 - copyCellDataBarButtonItem_ItemClick(sender, e) /// <summary> /// Copy Cell Data 바 버튼 항목 항목 클릭시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void copyCellDataBarButtonItem_ItemClick(object sender, ItemClickEventArgs e) { GridCellMenuInfo gridCellMenuInfo = this.tableView.GridMenu.MenuInfo as GridCellMenuInfo; if(gridCellMenuInfo != null && gridCellMenuInfo.Row != null) { int rowHandle = gridCellMenuInfo.Row.RowHandle.Value; GridColumn gridColumn = gridCellMenuInfo.Column as GridColumn; object cellValue = this.gridControl.GetCellValue(rowHandle, gridColumn); Clipboard.SetText(cellValue == null ? string.Empty : cellValue.ToString()); } } #endregion |
■ TableView 엘리먼트의 행/셀 컨텍스트 메뉴에서 행을 삭제하는 방법을 보여준다. ▶ 예제 코드 (XAML)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
<dxg:GridControl x:Name="gridControl"> <dxg:GridControl.Columns> <dxg:GridColumn FieldName="UserName" Header="User Name" /> <dxg:GridColumn FieldName="RegistrationDate" Header="Registration Date" /> </dxg:GridControl.Columns> <dxg:GridControl.View> <dxg:TableView x:Name="tableView"> <dxg:TableView.RowCellMenuCustomizations> <dxb:BarButtonItem x:Name="deleteRowBarButtonItem" Content="Delete Row" ItemClick="deleteRowBarButtonItem_ItemClick" /> <dxb:BarButtonItem x:Name="copyCellDataBarButtonItem" Content="Copy Cell Data" ItemClick="copyCellDataBarButtonItem_ItemClick" /> </dxg:TableView.RowCellMenuCustomizations> </dxg:TableView> </dxg:GridControl.View> </dxg:GridControl> |
▶ 예제 코드 (C#)
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
using DevExpress.Xpf.Bars; using DevExpress.Xpf.Grid; #region Delete Row 바 버튼 항목 항목 클릭시 처리하기 - deleteRowBarButtonItem_ItemClick(sender, e) /// <summary> /// Delete Row 바 버튼 항목 항목 클릭시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void deleteRowBarButtonItem_ItemClick(object sender, ItemClickEventArgs e) { GridCellMenuInfo gridCellMenuInfo = this.tableView.GridMenu.MenuInfo as GridCellMenuInfo; if(gridCellMenuInfo != null && gridCellMenuInfo.Row != null) { int rowHandle = gridCellMenuInfo.Row.RowHandle.Value; this.tableView.DeleteRow(rowHandle); } } #endregion #region Copy Cell Data 바 버튼 항목 항목 클릭시 처리하기 - copyCellDataBarButtonItem_ItemClick(sender, e) /// <summary> /// Copy Cell Data 바 버튼 항목 항목 클릭시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void copyCellDataBarButtonItem_ItemClick(object sender, ItemClickEventArgs e) { GridCellMenuInfo gridCellMenuInfo = this.tableView.GridMenu.MenuInfo as GridCellMenuInfo; if(gridCellMenuInfo != null && gridCellMenuInfo.Row != null) { int rowHandle = gridCellMenuInfo.Row.RowHandle.Value; GridColumn gridColumn = gridCellMenuInfo.Column as GridColumn; object cellValue = this.gridControl.GetCellValue(rowHandle, gridColumn); Clipboard.SetText(cellValue == null ? string.Empty : cellValue.ToString()); } } #endregion |
■ DataViewBase 클래스의 RowCellMenuCustomizations 속성을 사용해 행/셀 컨텍스트 메뉴를 설정하는 방법을 보여준다. ▶ 예제 코드 (XAML)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
<dxg:GridControl x:Name="gridControl"> <dxg:GridControl.Columns> <dxg:GridColumn FieldName="UserName" Header="User Name" /> <dxg:GridColumn FieldName="RegistrationDate" Header="Registration Date" /> </dxg:GridControl.Columns> <dxg:GridControl.View> <dxg:TableView x:Name="tableView"> <dxg:TableView.RowCellMenuCustomizations> <dxb:BarButtonItem x:Name="deleteRowBarButtonItem" Content="Delete Row" ItemClick="deleteRowBarButtonItem_ItemClick" /> <dxb:BarButtonItem x:Name="copyCellDataBarButtonItem" Content="Copy Cell Data" ItemClick="copyCellDataBarButtonItem_ItemClick" /> </dxg:TableView.RowCellMenuCustomizations> </dxg:TableView> </dxg:GridControl.View> </dxg:GridControl> |
▶ 예제 코드 (C#)
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
using DevExpress.Xpf.Bars; using DevExpress.Xpf.Grid; #region Delete Row 바 버튼 항목 항목 클릭시 처리하기 - deleteRowBarButtonItem_ItemClick(sender, e) /// <summary> /// Delete Row 바 버튼 항목 항목 클릭시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void deleteRowBarButtonItem_ItemClick(object sender, ItemClickEventArgs e) { GridCellMenuInfo gridCellMenuInfo = this.tableView.GridMenu.MenuInfo as GridCellMenuInfo; if(gridCellMenuInfo != null && gridCellMenuInfo.Row != null) { int rowHandle = gridCellMenuInfo.Row.RowHandle.Value; this.tableView.DeleteRow(rowHandle); } } #endregion #region Copy Cell Data 바 버튼 항목 항목 클릭시 처리하기 - copyCellDataBarButtonItem_ItemClick(sender, e) /// <summary> /// Copy Cell Data 바 버튼 항목 항목 클릭시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void copyCellDataBarButtonItem_ItemClick(object sender, ItemClickEventArgs e) { GridCellMenuInfo gridCellMenuInfo = this.tableView.GridMenu.MenuInfo as GridCellMenuInfo; if(gridCellMenuInfo != null && gridCellMenuInfo.Row != null) { int rowHandle = gridCellMenuInfo.Row.RowHandle.Value; GridColumn gridColumn = gridCellMenuInfo.Column as GridColumn; object cellValue = this.gridControl.GetCellValue(rowHandle, gridColumn); Clipboard.SetText(cellValue == null ? string.Empty : cellValue.ToString()); } } #endregion |
■ Window 클래스 : 시스템 메뉴 숨기기 ———————————————————————————————————————— ▥▥▥IMAGE0▥▥▥ TestProject.zip