使用PropertyInspectorView的WPF属性网格

时间:2013-05-14 10:02:32

标签: wpf vb.net propertygrid

我在WorkflowDesigner中使用PropertyInspectorView作为我的WPF应用程序中的属性网格。

http://img89.imageshack.us/img89/2176/propertygrid.jpg

我想要,

  1. 删除“清除”按钮

  2. 更改“分类”和“排序A-Z”按钮的图标/背景颜色。

  3. 将这两个按钮移动到搜索文本框的右侧。

  4. 更改颜色(背景,字体,边框)

  5. 请告诉我这些事情是否可行?怎么样?

2 个答案:

答案 0 :(得分:1)

要更改颜色,请使用以下键

PropertyInspectorBackgroundBrushKey

PropertyInspectorBorderBrushKey

PropertyInspectorCategoryCaptionTextBrushKey

PropertyInspectorPaneBrushKey

PropertyInspectorToolBarBackgroundBrushKey

PropertyInspectorSelectedBackgroundBrushKey

PropertyInspectorSelectedForegroundBrushKey

    Dim Designer As New WorkflowDesigner()
    Dim rd As String = "<ResourceDictionary
                            x:Uid='ResourceDictionary_1' xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'
                            xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
                            xmlns:sap='clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation'
                            xmlns:sapv ='clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation'> 
                            <SolidColorBrush x:Uid='SolidColorBrush_01' x:Key='{x:Static sap: WorkflowDesignerColors.PropertyInspectorBackgroundBrushKey}' Color='Red'/>
                            </ResourceDictionary>"


    Dim reader As New StringReader(rd)
    Dim xmlReader As XmlReader = XmlReader.Create(reader)
    Dim fontAndColorDictionary As ResourceDictionary = DirectCast(System.Windows.Markup.XamlReader.Load(xmlReader), ResourceDictionary)
    Dim hashTable As New Hashtable()
    For Each key As String In fontAndColorDictionary.Keys
        hashTable.Add(key, fontAndColorDictionary(key))
    Next

    Designer.PropertyInspectorFontAndColorData = XamlServices.Save(hashTable)

答案 1 :(得分:0)

除了@Sugath的答案外,还有更多键可以设置。有关更多信息,请参阅https://docs.microsoft.com/en-us/dotnet/api/system.activities.presentation.workflowdesignercolors?view=netframework-4.8

此外,还有一种更简单的方法来创建哈希表:

Hashtable hashTable = new Hashtable
{
    { WorkflowDesignerColors.PropertyInspectorBackgroundBrushKey, backgroundLightBrush },
    { WorkflowDesignerColors.PropertyInspectorTextBrushKey, textBrush },
    { WorkflowDesignerColors.PropertyInspectorCategoryCaptionTextBrushKey, textBrush },
    { WorkflowDesignerColors.PropertyInspectorPaneBrushKey, backgroundDarkBrush },
    { WorkflowDesignerColors.PropertyInspectorToolBarBackgroundBrushKey, backgroundDarkBrush },
    { WorkflowDesignerColors.PropertyInspectorSelectedBackgroundBrushKey, backgroundLightBrush },
    { WorkflowDesignerColors.PropertyInspectorSelectedForegroundBrushKey, textBrush },
};

_Designer.PropertyInspectorFontAndColorData = System.Xaml.XamlServices.Save(hashTable);

其他键:

PropertyInspectorBackgroundBrushKey 获取属性检查器背景的画笔键。

PropertyInspectorBorderBrushKey 获取属性检查器边框的画笔键。

PropertyInspectorCategoryCaptionTextBrushKey
在属性检查器中获取类别标题文本的画笔键。

PropertyInspectorPaneBrushKey
获取属性检查器窗格的画笔键。

PropertyInspectorPopupBrushKey
获取属性检查器弹出窗口的画笔键。

PropertyInspectorSelectedBackgroundBrushKey 获取属性检查器中所选背景的画笔键。

PropertyInspectorSelectedForegroundBrushKey 获取属性检查器中选定前景的画笔键。

PropertyInspectorTextBrushKey
获取属性检查器文本的画笔键。

PropertyInspectorToolBarBackgroundBrushKey
在属性检查器中获取工具栏背景的画笔键。

PropertyInspectorToolBarItemHoverBackgroundBrushKey 在属性检查器工具栏中获取悬停项目背景的画笔键。

PropertyInspectorToolBarItemHoverBorderBrushKey 在属性检查器工具栏中获取悬停项边框的笔刷键。

PropertyInspectorToolBarItemSelectedBackgroundBrushKey
在属性检查器工具栏中获取所选项目背景的画笔键。

PropertyInspectorToolBarItemSelectedBorderBrushKey
获取属性检查器工具栏中所选项目边框的画笔键。

PropertyInspectorToolBarSeparatorBrushKey
在属性检查器工具栏中获取分隔符的画笔键。

PropertyInspectorToolBarTextBoxBorderBrushKey
获取属性检查器工具栏中文本框边框的画笔键。