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