| Controls/IconTabItem.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Controls/InnerWindow.xaml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Controls/MenuTabControl.xaml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Controls/MinInnerWindow.xaml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| MainWindow.xaml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| MainWindow.xaml.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Resources/Font/iconfont.ttf | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Resources/Icon/xinzeng_1.png | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| WPFProject.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Controls/IconTabItem.cs
@@ -1,46 +1,71 @@ using System.Windows; using System.Windows.Controls; namespace WPFProject.Controls { public class IconTabItem : TabItem { public IconTabItem() : base() { Visibility = Visibility.Collapsed; } private string _icon; public string Icon { get => _icon; set => _icon = value; } private bool _isFont; public bool IsFont { get => _isFont; set => _isFont = value; } private Window _Body; public Window Body { get => _Body; set => _Body = value; } // 单Header的字体大小 public double HeaderFontSize { get { return (double)GetValue(HeaderFontSizeProperty); } set { SetValue(HeaderFontSizeProperty, value); } } // Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc... public static readonly DependencyProperty HeaderFontSizeProperty = DependencyProperty.Register("HeaderFontSize", typeof(double), typeof(IconTabItem), new PropertyMetadata(20.0)); } } using System.ComponentModel; using System.Runtime.CompilerServices; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Media.Imaging; namespace WPFProject.Controls { public class IconTabItem : TabItem , INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected virtual void RaisePropertyChanged(string name) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } protected void RaiseAndSetIfChanged<T>(ref T old, T @new, [CallerMemberName] string propertyName = null) { old = @new; if (propertyName != null) { RaisePropertyChanged(propertyName); } } public IconTabItem() : base() { Visibility = Visibility.Collapsed; } private bool _isFont; public bool IsFont { get => _isFont; set => _isFont = value; } private Window _Body; public Window Body { get => _Body; set => _Body = value; } private BitmapImage _icon; public BitmapImage Icon { get { return (BitmapImage)GetValue(IconProperty); } set { SetValue(IconProperty, value); } } public static readonly DependencyProperty IconProperty = DependencyProperty.Register("Icon", typeof(BitmapImage), typeof(IconTabItem), new PropertyMetadata( new BitmapImage(new System.Uri("pack://application:,,,/Resources/Icon/xinzeng_1.png")))); // 单Header的字体大小 public double HeaderFontSize { get { return (double)GetValue(HeaderFontSizeProperty); } set { SetValue(HeaderFontSizeProperty, value); } } // Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc... public static readonly DependencyProperty HeaderFontSizeProperty = DependencyProperty.Register("HeaderFontSize", typeof(double), typeof(IconTabItem), new PropertyMetadata(10.0)); } } Controls/InnerWindow.xaml
@@ -51,7 +51,7 @@ <StackPanel Grid.Column="1" Orientation="Horizontal"> <Button Style="{StaticResource ChildWindowButton}" Click="Min_Click"></Button> <Button Style="{StaticResource ChildWindowButton}" Click="Max_Click" ></Button> <Button Style="{StaticResource ChildWindowButton}" Click="Max_Click" ></Button> <Button Style="{StaticResource ChildWindowCloseButton}" Click="CLose_Click"></Button> </StackPanel> </Grid> Controls/MenuTabControl.xaml
@@ -97,18 +97,22 @@ <Setter Property="Margin" Value="0"/> <Setter Property="Background" Value="{StaticResource ButtonColor}"/> <Setter Property="Foreground" Value="{StaticResource ButtonFont}"/> <Setter Property="HeaderFontSize" Value="15"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ctl:IconTabItem}"> <ControlTemplate x:Name="ct" TargetType="{x:Type ctl:IconTabItem}"> <Border x:Name="templateRoot" BorderThickness="1,1,1,1" Padding="10" BorderBrush="Gray" Background="{TemplateBinding Background}"> <Label x:Name="txt" Visibility="Visible" BorderThickness="0" VerticalContentAlignment="Center" HorizontalAlignment="Left" FontSize="{TemplateBinding HeaderFontSize}" Content="{TemplateBinding Header}" ToolTip="{TemplateBinding Header}" Foreground="{TemplateBinding Foreground}" /> <StackPanel HorizontalAlignment="Center"> <Image Width="30" Height="30" Source="{TemplateBinding Icon}"/> <Label x:Name="txt" Visibility="Visible" BorderThickness="0" VerticalContentAlignment="Center" HorizontalAlignment="Left" FontSize="{TemplateBinding HeaderFontSize}" Content="{TemplateBinding Header}" ToolTip="{TemplateBinding Header}" Foreground="{TemplateBinding Foreground}" /> </StackPanel> </Border> <ControlTemplate.Triggers> <MultiDataTrigger> @@ -134,8 +138,7 @@ </Style> </ResourceDictionary> </UserControl.Resources> <Grid> <TabControl x:Name="tabLevel_1" Style="{StaticResource ControlStyle}" Controls/MinInnerWindow.xaml
@@ -18,7 +18,7 @@ <StackPanel Background="{StaticResource ChildBorder}" Orientation="Horizontal"> <Label BorderBrush="{StaticResource MainBorder}" Foreground="#FFF" BorderThickness="2,0,0,0" VerticalContentAlignment="Center" ToolTip="{Binding Title}" Content="{Binding Title}"/> <Button Style="{StaticResource ChildWindowButton}" Click="Max_Click" ></Button> <Button Style="{StaticResource ChildWindowButton}" Click="Max_Click" ></Button> <Button Style="{StaticResource ChildWindowCloseButton}" Click="CLose_Click"></Button> </StackPanel> </UserControl> MainWindow.xaml
@@ -38,9 +38,9 @@ </Grid.ColumnDefinitions> <StackPanel Grid.Column="0"></StackPanel> <StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right"> <Button Style="{StaticResource WindowButton}" Click="Button_Click_2">111</Button> <Button Style="{StaticResource WindowButton}" x:Name="openCloseButton" Click="Button_Click_2"></Button> <Button Style="{StaticResource WindowButton}" Click="Button_Click"></Button> <Button Style="{StaticResource WindowButton}" Click="Button_Click"></Button> <Button Style="{StaticResource WindowButton}" Click="Button_Click"></Button> <Button Style="{StaticResource WindowCloseButton}" Click="Button_Click_1"></Button> </StackPanel> </Grid> MainWindow.xaml.cs
@@ -1,5 +1,6 @@ using System; using System.Windows; using System.Windows.Media; using WPFProject.Events; namespace WPFProject @@ -36,6 +37,11 @@ private void Button_Click_2(object sender, RoutedEventArgs e) { double temp = openCloseButton.RenderTransform.Value.Determinant; openCloseButton.RenderTransformOrigin = new Point(0.5, 0.5); ScaleTransform verticalFlipTransform = new ScaleTransform(1, temp*-1); openCloseButton.RenderTransform = verticalFlipTransform; mainControl.ChangeItemVisibility(); } } Resources/Font/iconfont.ttfBinary files differ
Resources/Icon/xinzeng_1.png
WPFProject.csproj
@@ -281,5 +281,8 @@ <WCFMetadata Include="Connected Services\" /> </ItemGroup> <ItemGroup /> <ItemGroup> <Resource Include="Resources\Icon\xinzeng_1.png" /> </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> </Project>