wpf3d游戏引擎ProjectLayoutView实现

1.ProjectLayoutView.xaml.cs

using PrimalEditor.Components;

using PrimalEditor.GameProject;

using PrimalEditor.Utilities;

using System.Windows;

using System.Windows.Controls;

namespace PrimalEditor.Editors

{

/// <summary>

/// ProjectLayoutView.xaml 的交互逻辑

/// </summary>

public partial class ProjectLayoutView : UserControl

{

public ProjectLayoutView()

{

InitializeComponent();

}

private void OnAddGameEntity_Button_Click(object sender, RoutedEventArgs e)

{

var btn = sender as Button;

var vm = btn.DataContext as Scene;

vm.AddGameEntityCommand.Execute(new GameEntity(vm) { Name = "Empty Game Entity" });

}

private void OnGameEntities_ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

GameEntityView.Instance.DataContext = null;

var listBox = sender as ListBox;

if (e.AddedItems.Count > 0)

{

GameEntityView.Instance.DataContext = listBox.SelectedItems[0];

}

var newSection = listBox.SelectedItems.Cast<GameEntity>().ToList();

var previousSelection = newSection.Except(e.AddedItems.Cast<GameEntity>()).Concat(e.RemovedItems.Cast<GameEntity>()).ToList();

Project.UndoRedo.Add(new UndoRedoAction(

() =>

{

listBox.UnselectAll();

previousSelection.ForEach(x => (listBox.ItemContainerGenerator.ContainerFromItem(x) as ListBoxItem).IsSelected = true);

},

() =>

{

listBox.UnselectAll();

newSection.ForEach(x => (listBox.ItemContainerGenerator.ContainerFromItem(x) as ListBoxItem).IsSelected = true);

},

"Selection changed"

));

}

}

}

相关推荐
污领巾7 小时前
虚幻GAS底层原理解剖六 (Target)
游戏引擎·虚幻
望获linux13 小时前
【实时Linux实战系列】实时数据流处理框架分析
linux·运维·前端·数据库·chrome·操作系统·wpf
伽蓝_游戏14 小时前
UGUI源码剖析(3):布局的“原子”——RectTransform的核心数据模型与几何学
ui·unity·架构·c#·游戏引擎·游戏程序·几何学
Kingsdesigner19 小时前
游戏开发流程革命:我用Substance插件,在UE5内实现材质的实时“创世纪”
游戏·adobe·ue5·游戏引擎·游戏开发·设计师·substance 3d
污领巾19 小时前
虚幻GAS底层原理解剖七 (ASC)
游戏引擎·php·虚幻
污领巾19 小时前
虚幻GAS底层原理解剖四 (TAG)
游戏引擎·虚幻
baivfhpwxf202320 小时前
wpf Image 转 90 度
wpf
污领巾1 天前
虚幻GAS底层原理解剖二 (GE)
游戏引擎·虚幻
麻花20132 天前
WPF的C1FlexGrid的单元格回车换行输入
wpf
zzyzxb2 天前
WPF中引用其他元素各种方法
wpf