Prechádzať zdrojové kódy

右键上下文菜单可用

tanghai 14 rokov pred
rodič
commit
7f2b42293b

+ 21 - 25
CSharp/GameEditor/MainWindow.xaml

@@ -2,36 +2,32 @@
 		xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 		xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 		Title="MainWindow" Height="800" Width="1280">
-	
-	<Window.CommandBindings>
-		<CommandBinding Command="ApplicationCommands.New" CanExecute="NewCanExecute" Executed="OnNewNode" />
-		<CommandBinding Command="ApplicationCommands.Delete" CanExecute="DeleteCanExecute" Executed="OnDeleteNode" />
-	</Window.CommandBindings>
-	
-	<Window.Resources>
-		<ContextMenu x:Key="NodeMenu" Name="behaviorNodeMenu">
-			<MenuItem Header="New" Command="ApplicationCommands.New" />
-			<MenuItem Header="Delete" Command="ApplicationCommands.Delete" />
-		</ContextMenu>
-	</Window.Resources>
-	
 	<StackPanel>
-		<Menu Height="23" >
-			<MenuItem Header="_File">
-				<MenuItem Header="New" Command="ApplicationCommands.New" />
-				<MenuItem Header="Delete" Command="ApplicationCommands.Delete" />
+		<Menu>
+			<MenuItem Height="24">
 			</MenuItem>
 		</Menu>
 		<Grid Height="738" Width="Auto">
 			<Grid.ColumnDefinitions>
-				<ColumnDefinition Width="132*" />
+				<ColumnDefinition Width="150" />
 				<ColumnDefinition Width="Auto" />
-				<ColumnDefinition Width="1092*" />
-			</Grid.ColumnDefinitions>
-			<GridSplitter Grid.Column="1" HorizontalAlignment="Center" Margin="0" VerticalAlignment="Stretch" Width="5" />
-			<TreeView HorizontalAlignment="Stretch" Margin="0" Name="behaviorTreeView" 
-					VerticalAlignment="Stretch" MouseRightButtonUp="behaviorTreeView_MouseRightButtonUp" 
-					Padding="0" BorderThickness="0" ContextMenu="{StaticResource NodeMenu}"/>
-		</Grid>
+				<ColumnDefinition Width="Auto" />
+                <ColumnDefinition Width="441*" />
+            </Grid.ColumnDefinitions>
+			<TreeView Grid.Column="0"  HorizontalAlignment="Stretch" Name="behaviorTreeView" 
+					VerticalAlignment="Stretch" Padding="0" BorderThickness="0" 
+					ContextMenuOpening="behaviorTreeView_ContextMenuOpening">
+				<TreeView.ContextMenu>
+					<ContextMenu>
+						<MenuItem Name="newMenuItem"  Header="New" Click="newMenuItem_Click" />
+                        <MenuItem Name="copyMenuItem" Header="Copy" Click="copyMenuItem_Click" />
+                        <MenuItem Name="pasteMenuItem"  Header="Paste" Click="pasteMenuItem_Click" />
+						<MenuItem Name="delMenuItem"  Header="Delete" Click="delMenuItem_Click" />
+					</ContextMenu>
+				</TreeView.ContextMenu>
+			</TreeView>
+			<GridSplitter Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Stretch" Width="5" />
+			<Canvas />
+        </Grid>
 	</StackPanel>
 </Window>

+ 12 - 14
CSharp/GameEditor/MainWindow.xaml.cs

@@ -17,32 +17,30 @@ namespace GameEditor
 			InitializeComponent();
 		}
 
-		private void behaviorTreeView_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
+		private void behaviorTreeView_ContextMenuOpening(object sender, ContextMenuEventArgs e)
 		{
-			var item = e.Source as TreeViewItem;
-			if (item == null)
-			{
-				return;
-			}
-			item.ContextMenu.IsOpen = true;
-			e.Handled = true;
+			newMenuItem.IsEnabled = true;
+			copyMenuItem.IsEnabled = true;
+			pasteMenuItem.IsEnabled = true;
+			delMenuItem.IsEnabled = true;
 		}
 
-		private void NewCanExecute(object sender, CanExecuteRoutedEventArgs e)
+		private void newMenuItem_Click(object sender, RoutedEventArgs e)
 		{
-			e.CanExecute = true;
+
 		}
 
-		private void OnNewNode(object sender, ExecutedRoutedEventArgs e)
+		private void delMenuItem_Click(object sender, RoutedEventArgs e)
 		{
+
 		}
 
-		private void DeleteCanExecute(object sender, CanExecuteRoutedEventArgs e)
+		private void copyMenuItem_Click(object sender, RoutedEventArgs e)
 		{
-			e.CanExecute = true;
+
 		}
 
-		private void OnDeleteNode(object sender, ExecutedRoutedEventArgs e)
+		private void pasteMenuItem_Click(object sender, RoutedEventArgs e)
 		{
 
 		}