chr
2024-02-28 e64d24005284e88daec445c7e79e6b93929d2463
优化程序UI;
8个文件已修改
1个文件已添加
69 ■■■■■ 已修改文件
Controls/IconTabItem.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controls/InnerWindow.xaml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controls/MenuTabControl.xaml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controls/MinInnerWindow.xaml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MainWindow.xaml 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MainWindow.xaml.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Resources/Font/iconfont.ttf 补丁 | 查看 | 原始文档 | blame | 历史
Resources/Icon/xinzeng_1.png 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject.csproj 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controls/IconTabItem.cs
@@ -1,20 +1,33 @@
using System.Windows;
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
    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 string _icon;
        public string Icon
        {
            get => _icon;
            set => _icon = value;
        }
        private bool _isFont;
@@ -31,6 +44,18 @@
            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
        {
@@ -40,7 +65,7 @@
        // 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));
            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">&#xe650;</Button>
                            <Button Style="{StaticResource ChildWindowButton}" Click="Max_Click" >&#xe534;</Button>
                            <Button Style="{StaticResource ChildWindowButton}" Click="Max_Click" >&#xe602;</Button>
                            <Button Style="{StaticResource ChildWindowCloseButton}" Click="CLose_Click">&#xe609;</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}">
                                <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,7 +138,6 @@
            </Style>
        </ResourceDictionary>
    </UserControl.Resources>
    
    <Grid>
        <TabControl x:Name="tabLevel_1" 
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" >&#xe534;</Button>
        <Button Style="{StaticResource ChildWindowButton}" Click="Max_Click" >&#xe602;</Button>
        <Button Style="{StaticResource ChildWindowCloseButton}" Click="CLose_Click">&#xe609;</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">&#xe60e;</Button>
                <Button Style="{StaticResource WindowButton}" Click="Button_Click">&#xe650;</Button>
                <Button Style="{StaticResource WindowButton}" Click="Button_Click">&#xe534;</Button>
                <Button Style="{StaticResource WindowButton}" Click="Button_Click">&#xe602;</Button>
                <Button Style="{StaticResource WindowCloseButton}" Click="Button_Click_1">&#xe609;</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.ttf
Binary 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>