WPF 360 보안 위 사 인터페이스 와 유사 한 프로그램 소스 공유 실현
35147 단어 wpf360 안전 위 사인터페이스 디자인
예전 에 윈도 폼 프로 그래 밍 을 배 울 때 자신 이 만 든 화면 이 못 생 겼 다 고 느 꼈 습 니 다.360 안전 위 사,신 뢰 등 소프트웨어 의 UI 디자인 이 모두 아름 다 웠 습 니 다.이런 UI 효 과 를 실현 할 수 있다 면 얼마나 좋 을 까 하 는 마음 이 들 었 습 니 다!!또 다른 고민 거 리 는,이 UI 피 부 는 어떻게 기술 로 구현 되 나 요?!여러 해 가 지 났 지만 마음 속 의 동경 과 의혹 은 사라 지지 않 고 강해 지고 있다.일상적인 업무 와 학습 에서 자신 은 인터넷 에서 도 비슷 한 기술 이나 글 을 자주 주의한다.최근 에 WPF 를 공부 하 는 과정 에서 인터넷 에 도 360 과 번개 UI 를 모방 하여 디자인 한 자원 이 있 는 것 을 보 았 다.자원 에 대한 학습 과 자신의 실천 을 통 해 아래 의 360 안전 위 사 인터페이스 를 실현 했다.
프로젝트 파일 이 비교적 많 기 때문에 핵심 과정 과 코드 를 나열 합 니 다.
1.VS 솔 루 션 구조:
WpfPageTransitions 는 UI 페이지 전환 애니메이션 효 과 를 실현 하고 다양한 애니메이션 을 지원 하 는 WPF 라 이브 러 리 로 Transition Type 속성 을 통 해 설정 할 수 있 습 니 다.그 원 리 는 여러 개의 애니메이션 형식 을 전환 하 는 Storyboard 를 정의 하 는 것 입 니 다.프로그램 은 설 정 된 Transition Type 에 따라 일치 하 는 Storyboard 애니메이션(애니메이션,xxxxxxxin,xxxxxxxxxxxxxxxOut 으로 나 뉘 어)을 실행 합 니 다.360 UI 는 WPF 데스크 톱 프로그램 으로 styles 폴 더 에 정 의 된 단추 스타일,메뉴 항목 스타일,페이지 서명 스타일 등 스타일 과 필요 한 모든 UI 컷 자원 을 저장 합 니 다.pages 폴 더 에 전환 할 자세 한 하위 페이지 를 저장 합 니 다.
(비고:이미지 자원 과 일부 파일 은 인터넷 에서 왔 습 니 다.특히 KXFang 360 프로젝트 가 제공 한 360 개의 전체 그림 과 레이아웃 파일 에 감 사 드 립 니 다)
2.페이지 전환 컨트롤 핵심 코드:
<UserControl x:Class="WpfPageTransitions.PageTransition"
xmlns="http://schemas.microsoft.com/winfx//xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx//xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/"
xmlns:d="http://schemas.microsoft.com/expression/blend/"
xmlns:local="clr-namespace:WpfPageTransitions"
mc:Ignorable="d"
d:DesignHeight="" d:DesignWidth="">
<UserControl.Resources>
<Style TargetType="{x:Type ContentPresenter}">
<Setter Property="LayoutTransform">
<Setter.Value>
<ScaleTransform />
</Setter.Value>
</Setter>
</Style>
<local:CenterConverter x:Key="centerConverter"/>
<!-- Slide and Fade -->
<Storyboard x:Key="SlideAndFadeIn" >
<ThicknessAnimation Duration="::." Storyboard.TargetProperty="Margin" From=",,-," To="" DecelerationRatio="." />
<DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" From="" To="" />
</Storyboard>
<Storyboard x:Key="SlideAndFadeOut">
<ThicknessAnimation Duration="::." Storyboard.TargetProperty="Margin" To="-,,," AccelerationRatio="."/>
<DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" To="" />
</Storyboard>
<!-- Fade -->
<Storyboard x:Key="FadeIn" >
<DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" From="" To="" />
</Storyboard>
<Storyboard x:Key="FadeOut">
<DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" To="" />
</Storyboard>
<!-- Slide -->
<Storyboard x:Key="SlideIn" >
<ThicknessAnimation Duration="::." Storyboard.TargetProperty="Margin" From=",,-," To="" DecelerationRatio="." />
</Storyboard>
<Storyboard x:Key="SlideOut">
<ThicknessAnimation Duration="::." Storyboard.TargetProperty="Margin" To="-,,," AccelerationRatio="."/>
</Storyboard>
<!-- Grow -->
<Storyboard x:Key="GrowIn" >
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" From="" To="" Duration="::." DecelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" From="" To="" Duration="::." DecelerationRatio="." />
</Storyboard>
<Storyboard x:Key="GrowOut">
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" To="" Duration="::." AccelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" To="" Duration="::." AccelerationRatio="." />
</Storyboard>
<!-- Grow and Fade -->
<Storyboard x:Key="GrowAndFadeIn" >
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" From="" To="" Duration="::." DecelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" From="" To="" Duration="::." DecelerationRatio="." />
<DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" From="" To="" />
</Storyboard>
<Storyboard x:Key="GrowAndFadeOut">
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" To="" Duration="::." AccelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" To="" Duration="::." AccelerationRatio="." />
<DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" To="" />
</Storyboard>
<!-- Flip -->
<Storyboard x:Key="FlipIn" >
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleX)" From="-" To="" Duration="::." DecelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleY)" From="-" To="" Duration="::." DecelerationRatio="." />
</Storyboard>
<Storyboard x:Key="FlipOut">
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleX)" To="" Duration="::." AccelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleY)" To="" Duration="::." AccelerationRatio="." />
</Storyboard>
<!-- Flip and Fade -->
<Storyboard x:Key="FlipAndFadeIn" >
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleX)" From="-" To="" Duration="::." DecelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleY)" From="-" To="" Duration="::." DecelerationRatio="." />
<DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" From="" To="" />
</Storyboard>
<Storyboard x:Key="FlipAndFadeOut">
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleX)" To="" Duration="::." AccelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleY)" To="" Duration="::." AccelerationRatio="." />
<DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" To="" />
</Storyboard>
<!-- Spin -->
<Storyboard x:Key="SpinIn" >
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(RotateTransform.Angle)" From="-" To="" Duration="::." DecelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" From="" To="" Duration="::." DecelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" From="" To="" Duration="::." DecelerationRatio="." />
</Storyboard>
<Storyboard x:Key="SpinOut">
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(RotateTransform.Angle)" To="" Duration="::." AccelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" To="" Duration="::." AccelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" To="" Duration="::." AccelerationRatio="." />
</Storyboard>
<!-- Spin and Fade -->
<Storyboard x:Key="SpinAndFadeIn" >
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(RotateTransform.Angle)" From="-" To="" Duration="::." DecelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" From="" To="" Duration="::." DecelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" From="" To="" Duration="::." DecelerationRatio="." />
<DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" From="" To="" />
</Storyboard>
<Storyboard x:Key="SpinAndFadeOut">
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(RotateTransform.Angle)" To="" Duration="::." AccelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" To="" Duration="::." AccelerationRatio="." />
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" To="" Duration="::." AccelerationRatio="." />
<DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" To="" />
</Storyboard>
</UserControl.Resources>
<Grid Name="page">
<ContentControl Name="contentPresenter" >
<ContentControl.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="" ScaleY=""
CenterX="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualWidth, Converter={StaticResource centerConverter}}"
CenterY="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualHeight, Converter={StaticResource centerConverter}}" />
<SkewTransform AngleX="" AngleY=""
CenterX="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualWidth, Converter={StaticResource centerConverter}}"
CenterY="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualHeight, Converter={StaticResource centerConverter}}" />
<RotateTransform Angle=""
CenterX="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualWidth, Converter={StaticResource centerConverter}}"
CenterY="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualHeight, Converter={StaticResource centerConverter}}" />
<TranslateTransform X="" Y="" />
</TransformGroup>
</ContentControl.RenderTransform>
</ContentControl>
</Grid>
</UserControl>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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;
using System.Threading.Tasks;
using System.Windows.Media.Animation;
namespace WpfPageTransitions
{
public partial class PageTransition : UserControl
{
Stack<UserControl> pages = new Stack<UserControl>();
public UserControl CurrentPage { get; set; }
public static readonly DependencyProperty TransitionTypeProperty = DependencyProperty.Register("TransitionType",
typeof(PageTransitionType),
typeof(PageTransition), new PropertyMetadata(PageTransitionType.SlideAndFade));
public PageTransitionType TransitionType
{
get
{
return (PageTransitionType)GetValue(TransitionTypeProperty);
}
set
{
SetValue(TransitionTypeProperty, value);
}
}
public PageTransition()
{
InitializeComponent();
}
public void ShowPage(UserControl newPage)
{
pages.Push(newPage);
Task.Factory.StartNew(() => ShowNewPage());
}
void ShowNewPage()
{
Dispatcher.Invoke((Action)delegate
{
if (contentPresenter.Content != null)
{
UserControl oldPage = contentPresenter.Content as UserControl;
if (oldPage != null)
{
oldPage.Loaded -= newPage_Loaded;
UnloadPage(oldPage);
}
}
else
{
ShowNextPage();
}
});
}
void ShowNextPage()
{
UserControl newPage = pages.Pop();
newPage.Loaded += newPage_Loaded;
contentPresenter.Content = newPage;
}
void UnloadPage(UserControl page)
{
Storyboard hidePage = (Resources[string.Format("{}Out", TransitionType.ToString())] as Storyboard).Clone();
hidePage.Completed += hidePage_Completed;
hidePage.Begin(contentPresenter);
}
void newPage_Loaded(object sender, RoutedEventArgs e)
{
Storyboard showNewPage = Resources[string.Format("{}In", TransitionType.ToString())] as Storyboard;
showNewPage.Begin(contentPresenter);
CurrentPage = sender as UserControl;
}
void hidePage_Completed(object sender, EventArgs e)
{
contentPresenter.Content = null;
ShowNextPage();
}
}
}
3.Like 360 Main 핵심 코드 는:이 중 AllowsTransparency="True"Window Style="None"Background="{x:Null}"의 목적 은 WPF 창 에 기본 테 두 리 를 숨 기 는 것 입 니 다.배경 그림 으로 WPF 정의 창 모양 을 채 울 수 있 도록 합 니 다.이 구간 에 서 는 닫 기,최소 화,최대 화 버튼 등 을 사용자 정의 할 수 있 습 니 다.
MouseLeftButtonDown="Window_Mouse Left Button Down"창 드래그 를 지원 하기 위해 서 입 니 다.FontFamily="SimSun" TextOptions.TextFormatting Mode='Display'의 목적 은 WPF 중국어 글꼴 의 모호 한 문 제 를 해결 하기 위 한 것 이다.
<Window x:Class="_UI.LikeMain"
xmlns="http://schemas.microsoft.com/winfx//xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx//xaml"
Title="LikeMain" Height="" Width=""
FontFamily="SimSun"
AllowsTransparency="True" WindowStyle="None"
xmlns:pageTransitions="clr-namespace:WpfPageTransitions;assembly=WpfPageTransitions"
Background="{x:Null}" MouseLeftButtonDown="Window_MouseLeftButtonDown" TextOptions.TextFormattingMode="Display" >
<Window.Resources>
<LinearGradientBrush x:Key="MyBrush" EndPoint=".," StartPoint=".,">
<GradientStop Color="#CFFFFFFF"/>
<GradientStop Color="#FFEBDD" Offset=""/>
</LinearGradientBrush>
</Window.Resources>
<Border BorderBrush="Black" BorderThickness="" CornerRadius="" Margin="">
<Border.Effect>
<DropShadowEffect ShadowDepth="" Opacity="."/>
</Border.Effect>
<Border.Background>
<ImageBrush ImageSource="styles/skin/frame.jpg"/>
</Border.Background>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="."/>
<RowDefinition Height="."/>
<RowDefinition/>
<RowDefinition Height="."/>
</Grid.RowDefinitions>
<!-- -->
<Label Content=" " HorizontalAlignment="Left" Width="." Foreground="#AEFF" FontWeight="Bold" TextOptions.TextFormattingMode="Display"/>
<Rectangle Margin="" Stroke="Black" HorizontalAlignment="Right" Width="." Grid.Row="" StrokeThickness="">
<Rectangle.Fill>
<ImageBrush ImageSource="styles/skin/logo.png" Stretch="Uniform"/>
</Rectangle.Fill>
</Rectangle>
<Button Content="x" HorizontalAlignment="Right" Margin=",,.," Style="{DynamicResource SysButtonStyle}" Width="." Name="closeButton" Click="closeButton_Click" />
<Button Content="max" HorizontalAlignment="Right" Margin=",,.," Style="{DynamicResource MaxButtonStyle}" Width="." Name="maxButton" Click="maxButton_Click">
<Button.Background>
<ImageBrush ImageSource="styles/skin/Button/MAX.png" Stretch="Uniform"/>
</Button.Background>
</Button>
<Button Content="mni" HorizontalAlignment="Right" Margin=",,.," Style="{DynamicResource MaxButtonStyle}" Width="." Name="mniButton" Click="mniButton_Click">
<Button.Background>
<ImageBrush ImageSource="styles/skin/Button/MNI.png" Stretch="Uniform"/>
</Button.Background>
</Button>
<Button x:Name="menuButton" HorizontalAlignment="Right" Margin=",,.," Style="{DynamicResource MButtonStyle}" Width="." Click="menuButton_Click">
<Button.Background>
<ImageBrush ImageSource="styles/skin/Button/M.png" Stretch="Uniform"/>
</Button.Background>
</Button>
<Popup x:Name="Menu" AllowsTransparency="True" Margin=",-,," PlacementTarget="{Binding ElementName=menuButton}" StaysOpen="False" PopupAnimation="Scroll">
<Grid Height="." Width="" Margin="" HorizontalAlignment="Left">
<Border BorderThickness="" CornerRadius="" Background="#FFEFEFEF" Margin="">
<Border.Effect>
<DropShadowEffect ShadowDepth="" Opacity="."/>
</Border.Effect>
<StackPanel Margin=",">
<MenuItem Header=" " Style="{DynamicResource MenuItemStyle}"/>
<MenuItem Header=" "/>
<MenuItem Header=" "/>
<MenuItem Header=" "/>
</StackPanel>
</Border>
</Grid>
</Popup>
<Rectangle Stroke="Black" StrokeThickness="" Width="" Margin=",,.,." HorizontalAlignment="Right" Height="">
<Rectangle.Fill>
<LinearGradientBrush EndPoint=".," StartPoint=".,">
<GradientStop Color="#"/>
<GradientStop Offset="" Color="#ADDD"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<Rectangle Stroke="Black" StrokeThickness="" Width="" Margin=",,.,." HorizontalAlignment="Right" Height="">
<Rectangle.Fill>
<LinearGradientBrush EndPoint=".," StartPoint=".,">
<GradientStop Color="#"/>
<GradientStop Offset="" Color="#ADDD"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<Rectangle Stroke="Black" StrokeThickness="" Width="" Margin=",,.,." HorizontalAlignment="Right" Height="">
<Rectangle.Fill>
<LinearGradientBrush EndPoint=".," StartPoint=".,">
<GradientStop Color="#"/>
<GradientStop Offset="" Color="#ADDD"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<Rectangle Height="" Margin=",,.," Stroke="Black" StrokeThickness="" VerticalAlignment="Top">
<Rectangle.Fill>
<LinearGradientBrush EndPoint=".," StartPoint=".,">
<GradientStop Color="#FFFFFF"/>
<GradientStop Offset="" Color="#ADDD"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<!-- -->
<TabControl Name="tab" Grid.RowSpan="" Margin="" Style="{DynamicResource TabControlStyle}" Grid.Row="" Background="{x:Null}" SelectionChanged="TabControl_SelectionChanged">
<TabItem Header=" " Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}" TextOptions.TextFormattingMode="Display">
<TabItem.Background>
<ImageBrush ImageSource="styles/skin/ico/ico_Examine.png"/>
</TabItem.Background>
<Grid Margin="" Background="{DynamicResource MyBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".*"/>
<ColumnDefinition Width=".*"/>
<ColumnDefinition Width=".*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="."/>
<RowDefinition Height="."/>
<RowDefinition Height="."/>
<RowDefinition Height="."/>
</Grid.RowDefinitions>
<!-- -->
<Label Content=" " HorizontalAlignment="Left" Margin="" Width="." Height="" FontSize="." FontWeight="Bold" Grid.Column="" Grid.Row="" Grid.ColumnSpan="" />
<pageTransitions:PageTransition Name="pTransitionControl_" Margin="" TransitionType="SlideAndFade" Grid.Column="" Grid.Row="" Grid.ColumnSpan="" Grid.RowSpan=""/>
</Grid>
</TabItem>
<TabItem Header=" " Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}">
<TabItem.Background>
<ImageBrush ImageSource="styles/skin/ico/ico_dsmain.png"/>
</TabItem.Background>
<Grid Margin="" Background="{DynamicResource MyBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".*"/>
<ColumnDefinition Width=".*"/>
<ColumnDefinition Width=".*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="."/>
<RowDefinition Height="."/>
<RowDefinition Height="."/>
<RowDefinition Height="."/>
</Grid.RowDefinitions>
<!-- -->
<Label Content=" " HorizontalAlignment="Left" Margin="" Width="." Height="" FontSize="." FontWeight="Bold" Grid.Column="" Grid.Row="" Grid.ColumnSpan="" />
<pageTransitions:PageTransition Name="pTransitionControl_" Margin="" TransitionType="SlideAndFade" Grid.Column="" Grid.Row="" Grid.ColumnSpan="" Grid.RowSpan=""/>
</Grid>
</TabItem>
<TabItem Header=" " Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}">
<TabItem.Background>
<ImageBrush ImageSource="styles/skin/ico/ico_PluginCleaner.png"/>
</TabItem.Background>
<Grid Margin="" Background="{DynamicResource MyBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".*"/>
<ColumnDefinition Width=".*"/>
<ColumnDefinition Width=".*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="."/>
<RowDefinition Height="."/>
<RowDefinition Height="."/>
<RowDefinition Height="."/>
</Grid.RowDefinitions>
<!-- -->
<Label Content=" " HorizontalAlignment="Left" Margin="" Width="." Height="" FontSize="." FontWeight="Bold" Grid.Column="" Grid.Row="" Grid.ColumnSpan="" />
<pageTransitions:PageTransition Name="pTransitionControl_" Margin="" TransitionType="SlideAndFade" Grid.Column="" Grid.Row="" Grid.ColumnSpan="" Grid.RowSpan=""/>
</Grid>
</TabItem>
<TabItem Header=" " Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}">
<TabItem.Background>
<ImageBrush ImageSource="styles/skin/ico/ico_VulRepair.png"/>
</TabItem.Background>
<Grid Background="{DynamicResource MyBrush}"/>
</TabItem>
<TabItem Header=" " Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}">
<TabItem.Background>
<ImageBrush ImageSource="styles/skin/ico/ico_RubbishCleaner.png"/>
</TabItem.Background>
<Grid Background="{DynamicResource MyBrush}"/>
</TabItem>
<TabItem Header=" " Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}">
<TabItem.Background>
<ImageBrush ImageSource="styles/skin/ico/ico_TraceCleaner.png"/>
</TabItem.Background>
<Grid Background="{DynamicResource MyBrush}"/>
</TabItem>
<TabItem Header=" " Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}">
<TabItem.Background>
<ImageBrush ImageSource="styles/skin/ico/ico_SysRepair.png"/>
</TabItem.Background>
<Grid Background="{DynamicResource MyBrush}"/>
</TabItem>
<TabItem Header=" " Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}">
<TabItem.Background>
<ImageBrush ImageSource="styles/skin/ico/ico_AdvTools.png"/>
</TabItem.Background>
<Grid Background="{DynamicResource MyBrush}"/>
</TabItem>
<TabItem Header=" " Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}">
<TabItem.Background>
<ImageBrush ImageSource="styles/skin/ico/ico_softmgr.png"/>
</TabItem.Background>
<Grid Background="{DynamicResource MyBrush}"/>
</TabItem>
</TabControl>
<!-- -->
<!-- -->
<Label Content=" " Margin="" Grid.Row="" Foreground="#AEFF" FontWeight="Bold" BorderThickness="" BorderBrush="White" HorizontalAlignment="Left" Width="." TextOptions.TextFormattingMode="Display" />
<Label Content=" " Margin="" Grid.Row="" Foreground="#AEFF" FontWeight="Bold" BorderThickness="" BorderBrush="White" HorizontalAlignment="Right" Width="" TextOptions.TextFormattingMode="Display" />
</Grid>
</Border>
</Window>
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.Shapes;
namespace _UI
{
/// <summary>
/// LikeMain.xaml
/// </summary>
public partial class LikeMain : Window
{
public LikeMain()
{
InitializeComponent();
}
private void closeButton_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
private void maxButton_Click(object sender, RoutedEventArgs e)
{
if (WindowState == WindowState.Normal)
WindowState = WindowState.Maximized;
else
WindowState = WindowState.Normal;
}
private void mniButton_Click(object sender, RoutedEventArgs e)
{
this.WindowState = WindowState.Minimized;
}
private void menuButton_Click(object sender, RoutedEventArgs e)
{
Menu.IsOpen = true;
}
private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
//
this.DragMove();
}
private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
int index = this.tab.SelectedIndex;
if (index == )
{
// TransitionType WpfPage
//this.pTransitionControl_.TransitionType = WpfPageTransitions.PageTransitionType.SpinAndFade;
pages.index newPage = new pages.index();
this.pTransitionControl_.ShowPage(newPage);
}
else if (index == )
{
pages.scan newPage = new pages.scan();
this.pTransitionControl_.ShowPage(newPage);
}
else if (index == )
{
pages.scan newPage = new pages.scan();
this.pTransitionControl_.ShowPage(newPage);
}
else
{
pages.index newPage = new pages.index();
this.pTransitionControl_.ShowPage(newPage);
}
}
}
}
사용자 가 Tab 페이지 서명 을 눌 렀 을 때(이벤트 전환)프로그램 은 pages.index newPage=new pages.index()를 사용 합 니 다.먼저 page 하위 페이지(실제 계승 UserControl)를 예화 한 다음 this.pTransition Control 을 호출 합 니 다.1.ShowPage(newPage);하위 페이지 를 불 러 옵 니 다(본질 적 으로 pTransition Control1.Content=newpage)。4.실행 코드,화면 은 다음 과 같 습 니 다.
다음은 360 안전 위 사 인터페이스 캡 처 입 니 다.비교 해 볼 수 있 습 니까?비슷 합 니까?
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WPF RelativeSources 2022에 대한 간단한 가이드 | 아이포 테크노랩WPF RelativeSource는 해당 관계를 사용하여 요소의 데이터를 다른 소스 요소와 바인딩하는 데 도움이 되는 마크업 확장입니다. 다른 객체의 속성이나 상대 부모에 대한 모든 객체의 Bindings 속성과 함...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.