mirror of
https://gitcode.com/gh_mirrors/se/Semi.Avalonia
synced 2026-04-15 13:46:35 +08:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c30db80b0e | ||
|
|
9d48dbfbbb |
28
demo/Semi.Avalonia.Demo/Converters/FileIconConverter.cs
Normal file
28
demo/Semi.Avalonia.Demo/Converters/FileIconConverter.cs
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using Avalonia;
|
||||||
|
using Avalonia.Data.Converters;
|
||||||
|
using Avalonia.Metadata;
|
||||||
|
|
||||||
|
namespace Semi.Avalonia.Demo.Converters;
|
||||||
|
|
||||||
|
public class FileIconConverter : IMultiValueConverter
|
||||||
|
{
|
||||||
|
[Content] public IDictionary<string, object?> Items { get; } = new Dictionary<string, object?>();
|
||||||
|
|
||||||
|
public object? Convert(IList<object?> values, Type targetType, object? parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
if (values[0] is bool isDirectory && values[1] is bool isOpen)
|
||||||
|
{
|
||||||
|
if (!isDirectory)
|
||||||
|
{
|
||||||
|
return Items["file"];
|
||||||
|
}
|
||||||
|
|
||||||
|
return isOpen ? Items["folderOpen"] : Items["folderClosed"];
|
||||||
|
}
|
||||||
|
|
||||||
|
return AvaloniaProperty.UnsetValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -29,40 +29,40 @@
|
|||||||
|
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
PlaceholderText="Please select a State"
|
PlaceholderText="Please select a State"
|
||||||
ValueMemberBinding="{Binding Name,x:DataType=vm:StateData}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Classes="Large"
|
Classes="Large"
|
||||||
ValueMemberBinding="{Binding Name,x:DataType=vm:StateData}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Classes="Small"
|
Classes="Small"
|
||||||
ValueMemberBinding="{Binding Name,x:DataType=vm:StateData}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Classes="Bordered"
|
Classes="Bordered"
|
||||||
ValueMemberBinding="{Binding Name,x:DataType=vm:StateData}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
IsEnabled="False"
|
IsEnabled="False"
|
||||||
PlaceholderText="Disabled"
|
PlaceholderText="Disabled"
|
||||||
ValueMemberBinding="{Binding Name,x:DataType=vm:StateData}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
InnerLeftContent="https://"
|
InnerLeftContent="https://"
|
||||||
InnerRightContent=".com"
|
InnerRightContent=".com"
|
||||||
ValueMemberBinding="{Binding Name,x:DataType=vm:StateData}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Width="100"
|
Width="100"
|
||||||
Classes="Large"
|
Classes="Large"
|
||||||
PlaceholderText="Large"
|
PlaceholderText="Large"
|
||||||
ValueMemberBinding="{Binding Name,x:DataType=vm:StateData}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Width="100"
|
Width="100"
|
||||||
PlaceholderText="Default"
|
PlaceholderText="Default"
|
||||||
ValueMemberBinding="{Binding Name,x:DataType=vm:StateData}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Width="100"
|
Width="100"
|
||||||
Classes="Small"
|
Classes="Small"
|
||||||
PlaceholderText="Small"
|
PlaceholderText="Small"
|
||||||
ValueMemberBinding="{Binding Name,x:DataType=vm:StateData}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
@@ -70,17 +70,17 @@
|
|||||||
Width="100"
|
Width="100"
|
||||||
IsEnabled="False"
|
IsEnabled="False"
|
||||||
PlaceholderText="Disabled"
|
PlaceholderText="Disabled"
|
||||||
ValueMemberBinding="{Binding Name,x:DataType=vm:StateData}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Width="100"
|
Width="100"
|
||||||
Classes="Bordered"
|
Classes="Bordered"
|
||||||
PlaceholderText="Bordered"
|
PlaceholderText="Bordered"
|
||||||
ValueMemberBinding="{Binding Name,x:DataType=vm:StateData}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Width="100"
|
Width="100"
|
||||||
Classes="Bordered"
|
Classes="Bordered"
|
||||||
IsEnabled="False"
|
IsEnabled="False"
|
||||||
ValueMemberBinding="{Binding Name,x:DataType=vm:StateData}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
<TabbedPage Name="DemoTabs"
|
<TabbedPage Name="DemoTabs"
|
||||||
TabPlacement="Top"
|
TabPlacement="Top"
|
||||||
SelectionChanged="OnSelectionChanged">
|
SelectionChanged="OnSelectionChanged">
|
||||||
<ContentPage Header="Home">
|
<ContentPage Icon="{DynamicResource SemiIconHome}" Header="Home">
|
||||||
<StackPanel Margin="16" Spacing="8">
|
<StackPanel Margin="16" Spacing="8">
|
||||||
<TextBlock Text="Home Tab" FontSize="24" FontWeight="Bold" />
|
<TextBlock Text="Home Tab" FontSize="24" FontWeight="Bold" />
|
||||||
<TextBlock Text="Welcome to the Home tab. This is a TabbedPage sample."
|
<TextBlock Text="Welcome to the Home tab. This is a TabbedPage sample."
|
||||||
@@ -59,14 +59,14 @@
|
|||||||
TextWrapping="Wrap" Opacity="0.7" />
|
TextWrapping="Wrap" Opacity="0.7" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</ContentPage>
|
</ContentPage>
|
||||||
<ContentPage Header="Search">
|
<ContentPage Icon="{DynamicResource SemiIconSearch}" Header="Search">
|
||||||
<StackPanel Margin="16" Spacing="8">
|
<StackPanel Margin="16" Spacing="8">
|
||||||
<TextBlock Text="Search Tab" FontSize="24" FontWeight="Bold" />
|
<TextBlock Text="Search Tab" FontSize="24" FontWeight="Bold" />
|
||||||
<TextBox PlaceholderText="Type to search..." />
|
<TextBox PlaceholderText="Type to search..." />
|
||||||
<TextBlock Text="Search results will appear here." Opacity="0.7" />
|
<TextBlock Text="Search results will appear here." Opacity="0.7" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</ContentPage>
|
</ContentPage>
|
||||||
<ContentPage Header="Settings">
|
<ContentPage Icon="{DynamicResource SemiIconSetting}" Header="Settings">
|
||||||
<StackPanel Margin="16" Spacing="8">
|
<StackPanel Margin="16" Spacing="8">
|
||||||
<TextBlock Text="Settings Tab" FontSize="24" FontWeight="Bold" />
|
<TextBlock Text="Settings Tab" FontSize="24" FontWeight="Bold" />
|
||||||
<CheckBox Content="Enable notifications" />
|
<CheckBox Content="Enable notifications" />
|
||||||
|
|||||||
@@ -3,7 +3,8 @@
|
|||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="Semi.Avalonia.Demo.Pages.WindowCustomizationsPage">
|
x:Class="Semi.Avalonia.Demo.Pages.WindowCustomizationsPage"
|
||||||
|
x:CompileBindings="True">
|
||||||
|
|
||||||
<StackPanel
|
<StackPanel
|
||||||
Spacing="10"
|
Spacing="10"
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<LangVersion>latest</LangVersion>
|
<LangVersion>latest</LangVersion>
|
||||||
|
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<LangVersion>latest</LangVersion>
|
<LangVersion>latest</LangVersion>
|
||||||
|
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
|
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:collections="using:Avalonia.Collections">
|
xmlns:collections="using:Avalonia.Collections"
|
||||||
|
x:CompileBindings="True">
|
||||||
<ControlTheme x:Key="DataGridCellTextBlockTheme" TargetType="TextBlock">
|
<ControlTheme x:Key="DataGridCellTextBlockTheme" TargetType="TextBlock">
|
||||||
<Setter Property="Margin" Value="{DynamicResource DataGridCellTextBlockDefaultMargin}" />
|
<Setter Property="Margin" Value="{DynamicResource DataGridCellTextBlockDefaultMargin}" />
|
||||||
<Setter Property="VerticalAlignment" Value="Center" />
|
<Setter Property="VerticalAlignment" Value="Center" />
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:conv="clr-namespace:Avalonia.Controls.Converters;assembly=Avalonia.Controls.TreeDataGrid">
|
xmlns:conv="clr-namespace:Avalonia.Controls.Converters;assembly=Avalonia.Controls.TreeDataGrid"
|
||||||
|
x:CompileBindings="True">
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Margin="20">
|
<StackPanel Margin="20">
|
||||||
<TreeDataGridColumnHeader Header="123" />
|
<TreeDataGridColumnHeader Header="123" />
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
x:CompileBindings="True">
|
||||||
<ControlTheme x:Key="{x:Type SplitView}" TargetType="SplitView">
|
<ControlTheme x:Key="{x:Type SplitView}" TargetType="SplitView">
|
||||||
<Setter Property="OpenPaneLength" Value="{DynamicResource SplitViewOpenPaneThemeLength}" />
|
<Setter Property="OpenPaneLength" Value="{DynamicResource SplitViewOpenPaneThemeLength}" />
|
||||||
<Setter Property="CompactPaneLength" Value="{DynamicResource SplitViewCompactPaneThemeLength}" />
|
<Setter Property="CompactPaneLength" Value="{DynamicResource SplitViewCompactPaneThemeLength}" />
|
||||||
|
|||||||
@@ -31,7 +31,6 @@
|
|||||||
<DockPanel HorizontalSpacing="{DynamicResource TabItemIconHeaderSpacing}">
|
<DockPanel HorizontalSpacing="{DynamicResource TabItemIconHeaderSpacing}">
|
||||||
<ContentPresenter
|
<ContentPresenter
|
||||||
Name="PART_IconPresenter"
|
Name="PART_IconPresenter"
|
||||||
DockPanel.Dock="Left"
|
|
||||||
Content="{TemplateBinding Icon}"
|
Content="{TemplateBinding Icon}"
|
||||||
ContentTemplate="{TemplateBinding IconTemplate}"
|
ContentTemplate="{TemplateBinding IconTemplate}"
|
||||||
IsVisible="{Binding $self.Content, Converter={x:Static ObjectConverters.IsNotNull}}">
|
IsVisible="{Binding $self.Content, Converter={x:Static ObjectConverters.IsNotNull}}">
|
||||||
@@ -61,6 +60,10 @@
|
|||||||
<Setter Property="RecognizesAccessKey" Value="True" />
|
<Setter Property="RecognizesAccessKey" Value="True" />
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="^ /template/ ContentPresenter#PART_IconPresenter">
|
||||||
|
<Setter Property="DockPanel.Dock" Value="Left" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
<Style Selector="^:selected">
|
<Style Selector="^:selected">
|
||||||
<Style Selector="^ /template/ ContentPresenter#PART_HeaderPresenter">
|
<Style Selector="^ /template/ ContentPresenter#PART_HeaderPresenter">
|
||||||
<Setter Property="FontWeight" Value="{DynamicResource TabItemSelectedFontWeight}" />
|
<Setter Property="FontWeight" Value="{DynamicResource TabItemSelectedFontWeight}" />
|
||||||
|
|||||||
@@ -2,7 +2,11 @@
|
|||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<TabbedPage Width="400" Height="300" />
|
<TabbedPage Width="400" Height="800" TabPlacement="Bottom">
|
||||||
|
<ContentPage Icon="{DynamicResource SemiIconHome}" Header="Home" />
|
||||||
|
<ContentPage Icon="{DynamicResource SemiIconSearch}" Header="Search" />
|
||||||
|
<ContentPage Icon="{DynamicResource SemiIconSetting}" Header="Settings" />
|
||||||
|
</TabbedPage>
|
||||||
</Design.PreviewWith>
|
</Design.PreviewWith>
|
||||||
|
|
||||||
<ControlTheme x:Key="{x:Type TabbedPage}" TargetType="TabbedPage">
|
<ControlTheme x:Key="{x:Type TabbedPage}" TargetType="TabbedPage">
|
||||||
@@ -11,27 +15,91 @@
|
|||||||
<TabControl
|
<TabControl
|
||||||
Name="PART_TabControl"
|
Name="PART_TabControl"
|
||||||
Background="{TemplateBinding Background}"
|
Background="{TemplateBinding Background}"
|
||||||
Theme="{StaticResource LineTabControl}" />
|
Theme="{StaticResource LineTabControl}">
|
||||||
|
<TabControl.ItemContainerTheme>
|
||||||
|
<ControlTheme
|
||||||
|
BasedOn="{StaticResource LineTabItem}"
|
||||||
|
TargetType="TabItem">
|
||||||
|
<Style Selector="^[TabStripPlacement=Top], ^[TabStripPlacement=Bottom]">
|
||||||
|
<Setter Property="TabItem.Margin" Value="0" />
|
||||||
|
<Setter Property="TabItem.HorizontalContentAlignment" Value="Center" />
|
||||||
|
<Setter Property="TabItem.VerticalContentAlignment" Value="Center" />
|
||||||
|
<Style Selector="^ /template/ ContentPresenter#PART_IconPresenter">
|
||||||
|
<Setter Property="DockPanel.Dock" Value="Top" />
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
</ControlTheme>
|
||||||
|
</TabControl.ItemContainerTheme>
|
||||||
|
<TabControl.ItemsPanel>
|
||||||
|
<ItemsPanelTemplate>
|
||||||
|
<UniformGrid Columns="{Binding $parent[TabControl].ItemCount}" />
|
||||||
|
</ItemsPanelTemplate>
|
||||||
|
</TabControl.ItemsPanel>
|
||||||
|
</TabControl>
|
||||||
</ControlTemplate>
|
</ControlTemplate>
|
||||||
</Setter>
|
</Setter>
|
||||||
</ControlTheme>
|
</ControlTheme>
|
||||||
|
|
||||||
<ControlTheme x:Key="CardTabbedPage" TargetType="TabbedPage">
|
<ControlTheme x:Key="CardTabbedPage" TargetType="TabbedPage">
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<ControlTemplate TargetType="TabbedPage">
|
<ControlTemplate TargetType="TabbedPage">
|
||||||
<TabControl
|
<TabControl
|
||||||
Name="PART_TabControl"
|
Name="PART_TabControl"
|
||||||
Background="{TemplateBinding Background}"
|
Background="{TemplateBinding Background}"
|
||||||
Theme="{StaticResource CardTabControl}" />
|
Theme="{StaticResource CardTabControl}">
|
||||||
|
<TabControl.ItemContainerTheme>
|
||||||
|
<ControlTheme
|
||||||
|
BasedOn="{StaticResource CardTabItem}"
|
||||||
|
TargetType="TabItem">
|
||||||
|
<Style Selector="^[TabStripPlacement=Top], ^[TabStripPlacement=Bottom]">
|
||||||
|
<Setter Property="TabItem.Padding" Value="8" />
|
||||||
|
<Setter Property="TabItem.Margin" Value="0" />
|
||||||
|
<Setter Property="TabItem.HorizontalContentAlignment" Value="Center" />
|
||||||
|
<Setter Property="TabItem.VerticalContentAlignment" Value="Center" />
|
||||||
|
<Style Selector="^ /template/ ContentPresenter#PART_IconPresenter">
|
||||||
|
<Setter Property="DockPanel.Dock" Value="Top" />
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
</ControlTheme>
|
||||||
|
</TabControl.ItemContainerTheme>
|
||||||
|
<TabControl.ItemsPanel>
|
||||||
|
<ItemsPanelTemplate>
|
||||||
|
<UniformGrid Columns="{Binding $parent[TabControl].ItemCount}" />
|
||||||
|
</ItemsPanelTemplate>
|
||||||
|
</TabControl.ItemsPanel>
|
||||||
|
</TabControl>
|
||||||
</ControlTemplate>
|
</ControlTemplate>
|
||||||
</Setter>
|
</Setter>
|
||||||
</ControlTheme>
|
</ControlTheme>
|
||||||
|
|
||||||
<ControlTheme x:Key="ButtonTabbedPage" TargetType="TabbedPage">
|
<ControlTheme x:Key="ButtonTabbedPage" TargetType="TabbedPage">
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<ControlTemplate TargetType="TabbedPage">
|
<ControlTemplate TargetType="TabbedPage">
|
||||||
<TabControl
|
<TabControl
|
||||||
Name="PART_TabControl"
|
Name="PART_TabControl"
|
||||||
Background="{TemplateBinding Background}"
|
Background="{TemplateBinding Background}"
|
||||||
Theme="{StaticResource ButtonTabControl}" />
|
Theme="{StaticResource ButtonTabControl}">
|
||||||
|
<TabControl.ItemContainerTheme>
|
||||||
|
<ControlTheme
|
||||||
|
BasedOn="{StaticResource ButtonTabItem}"
|
||||||
|
TargetType="TabItem">
|
||||||
|
<Style Selector="^[TabStripPlacement=Top], ^[TabStripPlacement=Bottom]">
|
||||||
|
<Setter Property="TabItem.Padding" Value="12" />
|
||||||
|
<Setter Property="TabItem.Margin" Value="0" />
|
||||||
|
<Setter Property="TabItem.HorizontalContentAlignment" Value="Center" />
|
||||||
|
<Setter Property="TabItem.VerticalContentAlignment" Value="Center" />
|
||||||
|
<Style Selector="^ /template/ ContentPresenter#PART_IconPresenter">
|
||||||
|
<Setter Property="DockPanel.Dock" Value="Top" />
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
</ControlTheme>
|
||||||
|
</TabControl.ItemContainerTheme>
|
||||||
|
<TabControl.ItemsPanel>
|
||||||
|
<ItemsPanelTemplate>
|
||||||
|
<UniformGrid Columns="{Binding $parent[TabControl].ItemCount}" />
|
||||||
|
</ItemsPanelTemplate>
|
||||||
|
</TabControl.ItemsPanel>
|
||||||
|
</TabControl>
|
||||||
</ControlTemplate>
|
</ControlTemplate>
|
||||||
</Setter>
|
</Setter>
|
||||||
</ControlTheme>
|
</ControlTheme>
|
||||||
|
|||||||
Reference in New Issue
Block a user