Browse Source

Fix that SolidBrushEditor was to small, and show WPF Brushes

pull/637/head
jkuehner 11 years ago
parent
commit
10a277fff9
  1. 10
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/BrushEditor.cs
  2. 9
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/BrushEditorView.xaml
  3. 20
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/BrushEditorView.xaml.cs
  4. 7
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/SolidBrushEditor.xaml

10
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/BrushEditor.cs

@ -57,6 +57,12 @@ namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors.BrushEditor
}) })
.ToArray(); .ToArray();
public static BrushItem[] WpfBrushes = typeof(Brushes)
.GetProperties(BindingFlags.Static | BindingFlags.Public)
.Where(p => p.PropertyType == typeof(SolidColorBrush))
.Select(p => new BrushItem() { Name = p.Name, Brush = (Brush)p.GetValue(null, null) })
.ToArray();
SolidColorBrush solidColorBrush = new SolidColorBrush(Colors.White); SolidColorBrush solidColorBrush = new SolidColorBrush(Colors.White);
LinearGradientBrush linearGradientBrush; LinearGradientBrush linearGradientBrush;
RadialGradientBrush radialGradientBrush; RadialGradientBrush radialGradientBrush;
@ -177,6 +183,10 @@ namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors.BrushEditor
get { return SystemBrushes; } get { return SystemBrushes; }
} }
public IEnumerable<BrushItem> AvailableWpfBrushes {
get { return WpfBrushes; }
}
public void MakeGradientHorizontal() public void MakeGradientHorizontal()
{ {
GradientAngle = 0; GradientAngle = 0;

9
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/BrushEditorView.xaml

@ -7,7 +7,7 @@
xmlns:Converters="clr-namespace:ICSharpCode.WpfDesign.Designer.Converters" xmlns:Converters="clr-namespace:ICSharpCode.WpfDesign.Designer.Converters"
xmlns:PropertyGrid="clr-namespace:ICSharpCode.WpfDesign.Designer.PropertyGrid" xmlns:PropertyGrid="clr-namespace:ICSharpCode.WpfDesign.Designer.PropertyGrid"
xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets" xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets"
Width="395"> Width="395" MinHeight="320">
<UserControl.Resources> <UserControl.Resources>
@ -73,7 +73,12 @@
<BrushEditor:GradientBrushEditor /> <BrushEditor:GradientBrushEditor />
</TabItem> </TabItem>
<TabItem Header="Brush List"> <TabItem Header="Brush List">
<ListBox ItemsSource="{Binding AvailableBrushes}" <ListBox MaxHeight="320" ItemsSource="{Binding AvailableBrushes}"
SelectedValue="{Binding Brush.Color}"
SelectedValuePath="Brush.Color" />
</TabItem>
<TabItem Header="Wpf Brush List">
<ListBox MaxHeight="320" ItemsSource="{Binding AvailableWpfBrushes}"
SelectedValue="{Binding Brush.Color}" SelectedValue="{Binding Brush.Color}"
SelectedValuePath="Brush.Color" /> SelectedValuePath="Brush.Color" />
</TabItem> </TabItem>

20
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/BrushEditorView.xaml.cs

@ -43,10 +43,6 @@ namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors.BrushEditor
DataContext = BrushEditor; DataContext = BrushEditor;
SpecialInitializeComponent(); SpecialInitializeComponent();
SetBinding(HeightProperty, new Binding("Brush") {
Converter = HeightConverter.Instance
});
} }
/// <summary> /// <summary>
@ -64,21 +60,5 @@ namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors.BrushEditor
} }
public BrushEditor BrushEditor { get; private set; } public BrushEditor BrushEditor { get; private set; }
class HeightConverter : IValueConverter
{
public static HeightConverter Instance = new HeightConverter();
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is GradientBrush) return double.NaN;
return 315;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
} }
} }

7
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/SolidBrushEditor.xaml

@ -3,7 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets" xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets"
x:Name="this" x:Name="this"
Height="284"> Height="320">
<TabControl> <TabControl>
<TabItem Header="Color Picker"> <TabItem Header="Color Picker">
<widgets:ColorPicker Color="{Binding Color, ElementName=this}" /> <widgets:ColorPicker Color="{Binding Color, ElementName=this}" />
@ -13,5 +13,10 @@
SelectedValue="{Binding Color, ElementName=this}" SelectedValue="{Binding Color, ElementName=this}"
SelectedValuePath="Brush.Color" /> SelectedValuePath="Brush.Color" />
</TabItem> </TabItem>
<TabItem Header="Wpf Color List">
<ListBox ItemsSource="{Binding AvailableWpfBrushes}"
SelectedValue="{Binding Color, ElementName=this}"
SelectedValuePath="Brush.Color" />
</TabItem>
</TabControl> </TabControl>
</UserControl> </UserControl>

Loading…
Cancel
Save