Commit b0890d89 by liulongfei

顶部菜单调整

parent ddb6214b
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VIZ.Package.Domain
{
/// <summary>
/// 菜单项类型
/// </summary>
public enum MenuItemType
{
/// <summary>
/// 按钮
/// </summary>
Button,
/// <summary>
/// 勾选
/// </summary>
CheckBox,
/// <summary>
/// 分隔线
/// </summary>
Separator
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.Framework.Core;
namespace VIZ.Package.Domain.Model
{
/// <summary>
/// 菜单项
/// </summary>
public class MenuItemModel : ModelBase
{
#region Icon -- 图标
private string icon;
/// <summary>
/// 图标
/// </summary>
public string Icon
{
get { return icon; }
set { icon = value; this.RaisePropertyChanged(nameof(Icon)); }
}
#endregion
#region Header -- 头部
private object header;
/// <summary>
/// 头部
/// </summary>
public object Header
{
get { return header; }
set { header = value; this.RaisePropertyChanged(nameof(Header)); }
}
#endregion
#region Data -- 数据
private object data;
/// <summary>
/// 数据
/// </summary>
public object Data
{
get { return data; }
set { data = value; this.RaisePropertyChanged(nameof(Data)); }
}
#endregion
#region Type -- 菜单类型
private MenuItemType type;
/// <summary>
/// 菜单类型
/// </summary>
public MenuItemType Type
{
get { return type; }
set { type = value; this.RaisePropertyChanged(nameof(Type)); }
}
#endregion
#region Command -- 命令
private VCommand command;
/// <summary>
/// 命令
/// </summary>
public VCommand Command
{
get { return command; }
set { command = value; this.RaisePropertyChanged(nameof(Command)); }
}
#endregion
}
}
...@@ -79,6 +79,7 @@ ...@@ -79,6 +79,7 @@
<Compile Include="Core\GridColumnDefinition.cs" /> <Compile Include="Core\GridColumnDefinition.cs" />
<Compile Include="Core\IHotkeySupport.cs" /> <Compile Include="Core\IHotkeySupport.cs" />
<Compile Include="Enum\ConnGroupStatus.cs" /> <Compile Include="Enum\ConnGroupStatus.cs" />
<Compile Include="Enum\MenuItemType.cs" />
<Compile Include="Enum\ModulePluginIds.cs" /> <Compile Include="Enum\ModulePluginIds.cs" />
<Compile Include="Enum\ViewServiceKeys.cs" /> <Compile Include="Enum\ViewServiceKeys.cs" />
<Compile Include="Info\VizTreeNodeInfo.cs" /> <Compile Include="Info\VizTreeNodeInfo.cs" />
...@@ -106,6 +107,7 @@ ...@@ -106,6 +107,7 @@
<Compile Include="Model\ControlObject\ControlObjectModel.cs" /> <Compile Include="Model\ControlObject\ControlObjectModel.cs" />
<Compile Include="Model\File\FileModel.cs" /> <Compile Include="Model\File\FileModel.cs" />
<Compile Include="Model\File\FolderModel.cs" /> <Compile Include="Model\File\FolderModel.cs" />
<Compile Include="Model\Menu\MenuItemModel.cs" />
<Compile Include="Model\Page\PageGroupModel.cs" /> <Compile Include="Model\Page\PageGroupModel.cs" />
<Compile Include="Model\Page\PageModel.cs" /> <Compile Include="Model\Page\PageModel.cs" />
<Compile Include="Model\Page\PageModelBase.cs" /> <Compile Include="Model\Page\PageModelBase.cs" />
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using VIZ.Package.Domain;
using VIZ.Package.Domain.Model;
namespace VIZ.Package.Module
{
/// <summary>
/// 主视图菜单模板选择器
/// </summary>
public class MainTopViewMenuDataTemplateSelector : DataTemplateSelector
{
/// <summary>
/// 勾选框数据模型
/// </summary>
public DataTemplate CheckBoxDataTemplate { get; set; }
/// <summary>
/// 按钮数据模板
/// </summary>
public DataTemplate ButtonDataTemplate { get; set; }
/// <summary>
/// 分隔线数据模板
/// </summary>
public DataTemplate SeparatorTemplate { get; set; }
/// <summary>
/// 选择模板
/// </summary>
/// <returns></returns>
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
MenuItemModel model = item as MenuItemModel;
if (model == null)
return null;
switch (model.Type)
{
case MenuItemType.Button: return this.ButtonDataTemplate;
case MenuItemType.CheckBox: return this.CheckBoxDataTemplate;
case MenuItemType.Separator: return this.SeparatorTemplate;
}
return null;
}
}
}
...@@ -18,12 +18,31 @@ ...@@ -18,12 +18,31 @@
<UserControl.Resources> <UserControl.Resources>
<fcore:Bool2BoolConverterSimple x:Key="Bool2BoolConverterSimple"></fcore:Bool2BoolConverterSimple> <fcore:Bool2BoolConverterSimple x:Key="Bool2BoolConverterSimple"></fcore:Bool2BoolConverterSimple>
<DataTemplate x:Key="ViewItemTemplate"> <local:MainTopViewMenuDataTemplateSelector x:Key="MainTopViewMenuDataTemplateSelector">
<local:MainTopViewMenuDataTemplateSelector.ButtonDataTemplate>
<DataTemplate>
<ContentControl>
<dxb:BarButtonItem Glyph="{Binding Icon}" Content="{Binding Header}"
Command="{Binding Path=Command}"></dxb:BarButtonItem>
</ContentControl>
</DataTemplate>
</local:MainTopViewMenuDataTemplateSelector.ButtonDataTemplate>
<local:MainTopViewMenuDataTemplateSelector.CheckBoxDataTemplate>
<DataTemplate>
<ContentControl> <ContentControl>
<dxb:BarCheckItem Content="{Binding Name}" <dxb:BarCheckItem Content="{Binding Data.Name}"
IsChecked="{Binding Path=IsClosed,Mode=TwoWay,Converter={StaticResource Bool2BoolConverterSimple}}"></dxb:BarCheckItem> IsChecked="{Binding Path=Data.IsClosed,Mode=TwoWay,Converter={StaticResource Bool2BoolConverterSimple}}"></dxb:BarCheckItem>
</ContentControl> </ContentControl>
</DataTemplate> </DataTemplate>
</local:MainTopViewMenuDataTemplateSelector.CheckBoxDataTemplate>
<local:MainTopViewMenuDataTemplateSelector.SeparatorTemplate>
<DataTemplate>
<ContentControl>
<dxb:BarItemSeparator></dxb:BarItemSeparator>
</ContentControl>
</DataTemplate>
</local:MainTopViewMenuDataTemplateSelector.SeparatorTemplate>
</local:MainTopViewMenuDataTemplateSelector>
</UserControl.Resources> </UserControl.Resources>
...@@ -60,11 +79,8 @@ ...@@ -60,11 +79,8 @@
</dxb:BarSubItem> </dxb:BarSubItem>
<dxb:BarSubItem Content="设置" Command="{Binding Path=SettingCommand}"> <dxb:BarSubItem Content="设置" Command="{Binding Path=SettingCommand}">
</dxb:BarSubItem> </dxb:BarSubItem>
<dxb:BarSubItem Content="视图" ItemLinksSource="{Binding Path=ItemsSource}" ItemTemplate="{StaticResource ViewItemTemplate}"> <dxb:BarSubItem Content="视图" ItemLinksSource="{Binding Path=ItemsSource}"
</dxb:BarSubItem> ItemTemplateSelector="{StaticResource MainTopViewMenuDataTemplateSelector}">
<dxb:BarSubItem Content="布局">
<dxb:BarButtonItem Content="重置布局" Glyph="/VIZ.Package.Module.Resource;component/Icons/top_icon_layout_20x20.png"
Command="{Binding Path=ResetLayoutCommand}" />
</dxb:BarSubItem> </dxb:BarSubItem>
<dxb:BarSubItem Content="帮助"> <dxb:BarSubItem Content="帮助">
<dxb:BarButtonItem Content="关于" Glyph="/VIZ.Package.Module.Resource;component/Icons/top_icon_about_20x20.png" <dxb:BarButtonItem Content="关于" Glyph="/VIZ.Package.Module.Resource;component/Icons/top_icon_about_20x20.png"
......
...@@ -12,6 +12,7 @@ using System.Windows; ...@@ -12,6 +12,7 @@ using System.Windows;
using System.Windows.Forms; using System.Windows.Forms;
using VIZ.Framework.Core; using VIZ.Framework.Core;
using VIZ.Package.Domain; using VIZ.Package.Domain;
using VIZ.Package.Domain.Model;
using VIZ.Package.Storage; using VIZ.Package.Storage;
namespace VIZ.Package.Module namespace VIZ.Package.Module
...@@ -107,11 +108,11 @@ namespace VIZ.Package.Module ...@@ -107,11 +108,11 @@ namespace VIZ.Package.Module
#region ItemsSource -- 视图项 #region ItemsSource -- 视图项
private ObservableCollection<PluginInfo> itemsSource; private ObservableCollection<MenuItemModel> itemsSource;
/// <summary> /// <summary>
/// 视图项 /// 视图项
/// </summary> /// </summary>
public ObservableCollection<PluginInfo> ItemsSource public ObservableCollection<MenuItemModel> ItemsSource
{ {
get { return itemsSource; } get { return itemsSource; }
set { itemsSource = value; this.RaisePropertyChanged(nameof(ItemsSource)); } set { itemsSource = value; this.RaisePropertyChanged(nameof(ItemsSource)); }
...@@ -140,9 +141,26 @@ namespace VIZ.Package.Module ...@@ -140,9 +141,26 @@ namespace VIZ.Package.Module
this.IsAlreadyLoaded = true; this.IsAlreadyLoaded = true;
this.ItemsSource = ApplicationDomainEx.PluginInfos.Where(p => (p.Group == ApplicationConstants.APPLICATION_GROUP_NAME || List<PluginInfo> plugins = ApplicationDomainEx.PluginInfos.Where(p => (p.Group == ApplicationConstants.APPLICATION_GROUP_NAME ||
p.Group == ApplicationDomainEx.VizConfig.PluginGroup) && p.Group == ApplicationDomainEx.VizConfig.PluginGroup) &&
p.PluginType == PluginType.Module).ToObservableCollection(); p.PluginType == PluginType.Module).ToList();
var items = plugins.Select(p => new MenuItemModel
{
Data = p,
Type = MenuItemType.CheckBox
}).ToList();
items.Add(new MenuItemModel { Type = MenuItemType.Separator });
items.Add(new MenuItemModel
{
Header = "重置布局",
Icon = "/VIZ.Package.Module.Resource;component/Icons/top_icon_layout_20x20.png",
Type = MenuItemType.Button,
Command = this.ResetLayoutCommand
});
this.ItemsSource = items.ToObservableCollection();
} }
#endregion #endregion
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
</local:GHResourcePanel> </local:GHResourcePanel>
<!-- 按钮组 --> <!-- 按钮组 -->
<StackPanel Orientation="Horizontal" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,10,0"> <StackPanel Orientation="Horizontal" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,10,0">
<Button Content="添加至模板列表" Width="100" Height="30" Command="{Binding Path=AddSceneTemplateCommand}"></Button> <Button Content="添加至模板列表" Width="120" Height="30" Command="{Binding Path=AddSceneTemplateCommand}"></Button>
</StackPanel> </StackPanel>
</Grid> </Grid>
</UserControl> </UserControl>
...@@ -130,6 +130,7 @@ ...@@ -130,6 +130,7 @@
<Compile Include="ControlObject\FieldTree\Service\IFieldTreeService.cs" /> <Compile Include="ControlObject\FieldTree\Service\IFieldTreeService.cs" />
<Compile Include="Log\ViewModel\VizCommandWindowModel.cs" /> <Compile Include="Log\ViewModel\VizCommandWindowModel.cs" />
<Compile Include="Main\Controller\HotkeyController.cs" /> <Compile Include="Main\Controller\HotkeyController.cs" />
<Compile Include="Main\Core\MainTopViewMenuDataTemplateSelector.cs" />
<Compile Include="Page\Core\View\PageLoadingWindow.xaml.cs"> <Compile Include="Page\Core\View\PageLoadingWindow.xaml.cs">
<DependentUpon>PageLoadingWindow.xaml</DependentUpon> <DependentUpon>PageLoadingWindow.xaml</DependentUpon>
</Compile> </Compile>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment