feat: add icon group box custom control
This commit is contained in:
@@ -0,0 +1,42 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Data;
|
||||||
|
using System.Windows.Documents;
|
||||||
|
using System.Windows.Input;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using System.Windows.Media.Imaging;
|
||||||
|
using System.Windows.Navigation;
|
||||||
|
using System.Windows.Shapes;
|
||||||
|
|
||||||
|
namespace BallanceTasEditor.Frontend.Widgets {
|
||||||
|
|
||||||
|
public class IconGroupBox : GroupBox {
|
||||||
|
static IconGroupBox() {
|
||||||
|
DefaultStyleKeyProperty.OverrideMetadata(typeof(IconGroupBox), new FrameworkPropertyMetadata(typeof(IconGroupBox)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GroupBoxText {
|
||||||
|
get { return (string)GetValue(GroupBoxTextProperty); }
|
||||||
|
set { SetValue(GroupBoxTextProperty, value); }
|
||||||
|
}
|
||||||
|
|
||||||
|
// Using a DependencyProperty as the backing store for GroupBoxText. This enables animation, styling, binding, etc...
|
||||||
|
public static readonly DependencyProperty GroupBoxTextProperty =
|
||||||
|
DependencyProperty.Register("GroupBoxText", typeof(string), typeof(IconGroupBox));
|
||||||
|
|
||||||
|
public ImageSource GroupBoxIcon {
|
||||||
|
get { return (ImageSource)GetValue(GroupBoxIconProperty); }
|
||||||
|
set { SetValue(GroupBoxIconProperty, value); }
|
||||||
|
}
|
||||||
|
|
||||||
|
// Using a DependencyProperty as the backing store for GroupBoxIcon. This enables animation, styling, binding, etc...
|
||||||
|
public static readonly DependencyProperty GroupBoxIconProperty =
|
||||||
|
DependencyProperty.Register("GroupBoxIcon", typeof(ImageSource), typeof(IconGroupBox));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:widget="clr-namespace:BallanceTasEditor.Frontend.Widgets">
|
||||||
|
<Style x:Key="IconGroupBoxStyle" TargetType="{x:Type widget:IconGroupBox}" BasedOn="{StaticResource {x:Type GroupBox}}">
|
||||||
|
<Setter Property="HeaderTemplate">
|
||||||
|
<Setter.Value>
|
||||||
|
<DataTemplate>
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<Image Source="{Binding GroupBoxIcon, RelativeSource={RelativeSource AncestorType=widget:IconGroupBox}, Mode=OneWay}"
|
||||||
|
RenderOptions.BitmapScalingMode="HighQuality"
|
||||||
|
Width="16" Height="16" VerticalAlignment="Center"/>
|
||||||
|
<TextBlock Text="{Binding GroupBoxText, RelativeSource={RelativeSource AncestorType=widget:IconGroupBox}, Mode=OneWay}"
|
||||||
|
Margin="5,0,0,0" VerticalAlignment="Center"/>
|
||||||
|
</StackPanel>
|
||||||
|
</DataTemplate>
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style TargetType="{x:Type widget:IconGroupBox}" BasedOn="{StaticResource IconGroupBoxStyle}"/>
|
||||||
|
|
||||||
|
</ResourceDictionary>
|
||||||
Reference in New Issue
Block a user