ExComponents
These Components Are For WPF / XAML
Only!
xmlns:ex="clr-namespace:ExtraFunctions.ExComponents;assembly=ExtraFunctions"
A Text Box For Numbers.
<ex:DigitBox Margin="5" Text="-10" Width="120" Height="20"/>
An Advanced Model Of The DigitBox With Increase And Decrease Buttons.
<ex:NumericUpDown Margin="5" Width="120" Value="10" MaxValue="20"/>
A Markup Of A Button Including An Image.
<ex:ImageButton Source="visual-studio-logo.png" ImageAlignment="Left" Text="Image Button" Click="ImageButton_Click"/>
private void ImageButton_Click(object sender, RoutedEventArgs e) {}
An Alternative CheckBox That Fits Newer Applications.
<ex:Switch isChecked="true"/>
A Better Looking And Working DatePicker That The Build In One.
Uses Your Systems Format.
<ex:DatePicker Margin="5" Value="2023/01/01"/>
Pick A Time Any Time And Its There.
hh:mm:ss Format
<ex:TimePicker Margin="5" Value="01:00:00"/>
Property Viewer For All Your Property Needs.
<ex:PropertyView Margin="5" Width="200" Height="250" Header="Properties">
<ex:PropertyViewItem Header="Text">
<TextBox Text="Test"/>
</ex:PropertyViewItem>
<ex:PropertyViewItem Header="Combo">
<ComboBox ItemsSource="{Binding strings.Values, Source={StaticResource Data}}" Padding="1" SelectedIndex="2"/>
</ex:PropertyViewItem>
</ex:PropertyView>
The Item To Use In The PropertyView.
<ex:PropertyViewItem Header="Text">
<TextBox Text="Test"/>
</ex:PropertyViewItem>
<ex:PropertyViewItem Header="Combo">
<ComboBox ItemsSource="{Binding strings.Values, Source={StaticResource Data}}" Padding="1" SelectedIndex="2"/>
</ex:PropertyViewItem>
A TreeViewItem With Check Boxes.
<TreeView Margin="0,2" ItemsSource="{Binding SetData, Source={StaticResource Data}}">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="Focusable" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeViewItem">
<local:CheckBoxTreeViewItem
Header="{Binding}"
ItemsSource="{Binding Children}"
IsChecked="{Binding IsChecked, Mode=TwoWay, FallbackValue=True}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
public class obj
{
public obj() { }
public obj(string Value, bool? Checked = false)
{
this.Value = Value;
IsChecked = Checked;
}
public string Value { get; set; } = "";
public bool? IsChecked { get; set; } = false;
public List<obj> Children { get; set; } = new();
public override string ToString() => Value;
}
public List<obj> SetData { get; set; } = new()
{
new("Item 2") { Children = new List<obj>() { new("Child 2.1"), new("Child 2.2"), new("Child 2.3"), } },
new("Item 3") { Children = new List<obj>() {
new("Child 3.1") { Children = new(){ new("Content 3.1.1"), } },
new("Child 3.2") { Children = new(){ new("Content 3.2.1"), } },
} },
new("Item 1") { Children = new List<obj>() { new("Child 1.1"), new("Child 1.2"), } },
};
A Collection Of CheckBoxes.
<ex:CheckBoxGroup Margin="5" Width="200" Height="100" ItemsSource="{Binding strings.Values, Source={StaticResource Data}}"
ColumnCount="2" SelectionChanged="CheckBoxGroup_SelectionChanged"/>
private void CheckBoxGroup_SelectionChanged(object sender, RoutedEventArgs e) {}
A Collection Of Radio Buttons.
<ex:RadioGroupBox Margin="5" Width="200" Height="100" ItemsSource="{Binding strings.Values, Source={StaticResource Data}}"
ColumnCount="2" SelectionChanged="RadioGroupBox_SelectionChanged"/>
private void RadioGroupBox_SelectionChanged(object sender, RoutedEventArgs e) {}
A Button To Help Filter A Tree Of Items
<ex:FilterButton Margin="200" Height="20" ItemsSource="{Binding SetData, Source={StaticResource Data}}"/>
Shows A Search/Find Box In Its Targeted Control.
Value
Is The Text Value Of The Text Box And ItemsSource
Is The Items For The Category Combo Box.
<ex:FindBox Name="FindBox" ItemsSource="{Binding strings.Values, Source={StaticResource Data}}"
TargetControl="{Binding ElementName=Main_Window}"/>
FindBox.Show();
A Text Box That Looks Like A Search Bar.
Pressing Enter Or The Search Icon Will Trigger The OnSearch Event.
<ex:SearchBox Width="120" Margin="5" OnSearch="SearchBox_OnSearch"/>
private void SearchBox_OnSearch(object sender, RoutedEventArgs e) {}
A Fully Working ResizeGrip. Nothing Like The Half Done (Build In) ResizeGrip.
ResizeGripMode
Determents The Axes That Can Be Resized.
<local:ResizeGrip Target="{Binding ElementName=Main_Window}" ResizeGripMode="Vertical"/>
These Components Are For WinForms
Only!
Its A ToolStripMenuItem With Bindable Properties.