提交 1dbdce84 编写于 作者: R Richasy

添加卡片容器

上级 fc696fcd
......@@ -20,10 +20,11 @@
<Compile Include="Controls\Bili\AccountAvatar.xaml.cs">
<DependentUpon>AccountAvatar.xaml</DependentUpon>
</Compile>
<Compile Include="Controls\Bili\BannerItem.cs" />
<Compile Include="Controls\Bili\BannerItem\BannerItem.cs" />
<Compile Include="Controls\Bili\BannerView.xaml.cs">
<DependentUpon>BannerView.xaml</DependentUpon>
</Compile>
<Compile Include="Controls\CardPanel\CardPanel.cs" />
<Compile Include="Controls\IconTextBlock.xaml.cs">
<DependentUpon>IconTextBlock.xaml</DependentUpon>
</Compile>
......@@ -212,6 +213,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Controls\Bili\BannerItem\BannerItem.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Controls\Bili\BannerView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
......@@ -220,6 +225,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Controls\CardPanel\CardPanel.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Controls\IconTextBlock.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
......
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:hn="using:HN.Controls"
xmlns:icons="using:Fluent.Icons"
xmlns:local="using:Richasy.Bili.App.Controls"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls">
<Style TargetType="local:BannerItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:BannerItem">
<Grid x:Name="RootGrid" CornerRadius="{StaticResource ControlCornerRadius}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonGroup">
<VisualState x:Name="NormalState" />
<VisualState x:Name="PressedState">
<VisualState.Storyboard>
<Storyboard>
<PointerDownThemeAnimation Storyboard.TargetName="BannerImage" />
</Storyboard>
</VisualState.Storyboard>
</VisualState>
<VisualState x:Name="ReleaseState">
<VisualState.Storyboard>
<Storyboard>
<PointerUpThemeAnimation Storyboard.TargetName="BannerImage" />
</Storyboard>
</VisualState.Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<hn:ImageEx
x:Name="BannerImage"
AutomationProperties.Name="{TemplateBinding Title}"
MinWidth="300"
MinHeight="100"
MaxHeight="114"
LazyLoadingEnabled="True"
RetryCount="2"
RetryDelay="0:0:5"
Source="{TemplateBinding Source}"
Stretch="Uniform"
ToolTipService.ToolTip="{TemplateBinding Title}">
<hn:ImageEx.LoadingTemplate>
<DataTemplate>
<Grid>
<muxc:ProgressRing
Style="{StaticResource PageProgressRingStyle}"
Width="28"
Height="28" />
</Grid>
</DataTemplate>
</hn:ImageEx.LoadingTemplate>
<hn:ImageEx.FailedTemplate>
<DataTemplate>
<Grid Background="{ThemeResource SystemControlForegroundBaseMediumBrush}" Opacity="0.5">
<icons:FluentIconElement
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="{ThemeResource SystemControlForegroundBaseMediumBrush}"
Symbol="Image28Filled" />
</Grid>
</DataTemplate>
</hn:ImageEx.FailedTemplate>
</hn:ImageEx>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
......@@ -9,15 +9,7 @@
d:DesignWidth="400"
mc:Ignorable="d">
<ListViewItem
Style="{StaticResource ListViewItemExpanded}"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
BorderBrush="{ThemeResource CardStrokeColorDefaultBrush}"
BorderThickness="1"
CornerRadius="{StaticResource ControlCornerRadius}"
Tapped="OnItemTapped">
<local:CardPanel Click="OnItemClick">
<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
<Grid x:Name="ContentContainer" RowSpacing="8">
<Grid.RowDefinitions>
......@@ -45,5 +37,5 @@
TextAlignment="Center" />
</Grid>
</Grid>
</ListViewItem>
</local:CardPanel>
</UserControl>
......@@ -52,9 +52,8 @@ namespace Richasy.Bili.App.Controls
}
}
private void OnItemTapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
private void OnItemClick(object sender, RoutedEventArgs e)
{
e.Handled = true;
var animationService = ConnectedAnimationService.GetForCurrentView();
animationService.PrepareToAnimate("PartitionAnimate", this.ContentContainer);
ItemClick?.Invoke(this, Data);
......
......@@ -20,22 +20,10 @@
</Style>
</UserControl.Resources>
<Grid
<local:CardPanel
AutomationProperties.Name="{x:Bind ViewModel.Title, Mode=OneWay}"
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
BorderBrush="{ThemeResource CardStrokeColorDefaultBrush}"
BorderThickness="1"
CornerRadius="{ThemeResource OverlayCornerRadius}"
Tapped="OnContainerTapped">
<Grid.RowDefinitions>
<RowDefinition x:Name="Row1" Height="Auto" />
<RowDefinition x:Name="Row2" Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="Column1" Width="*" />
<ColumnDefinition x:Name="Column2" Width="Auto" />
</Grid.ColumnDefinitions>
Click="OnContainerClick">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="LayoutGroup">
......@@ -65,134 +53,146 @@
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid
x:Name="CoverContainer"
Height="124"
VerticalAlignment="Stretch">
<hn:ImageEx
x:Name="CoverImage"
LazyLoadingEnabled="True"
RetryCount="2"
RetryDelay="0:0:5"
Source="{x:Bind ViewModel.CoverUrl, Mode=OneWay}"
Stretch="UniformToFill">
<hn:ImageEx.LoadingTemplate>
<DataTemplate>
<Grid>
<muxc:ProgressRing
Style="{StaticResource PageProgressRingStyle}"
Width="28"
Height="28" />
</Grid>
</DataTemplate>
</hn:ImageEx.LoadingTemplate>
<hn:ImageEx.FailedTemplate>
<DataTemplate>
<Grid Background="{ThemeResource SystemControlForegroundBaseMediumBrush}" Opacity="0.5">
<icons:FluentIconElement
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="{ThemeResource SystemControlForegroundBaseMediumBrush}"
Symbol="Image28Filled" />
</Grid>
</DataTemplate>
</hn:ImageEx.FailedTemplate>
</hn:ImageEx>
<Grid>
<Grid.RowDefinitions>
<RowDefinition x:Name="Row1" Height="Auto" />
<RowDefinition x:Name="Row2" Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="Column1" Width="*" />
<ColumnDefinition x:Name="Column2" Width="Auto" />
</Grid.ColumnDefinitions>
<Grid
Margin="8,0,0,8"
Padding="8,4"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
Background="{ThemeResource AppMaskAcrylicBrush}"
CornerRadius="{StaticResource ControlCornerRadius}"
RequestedTheme="Dark">
<TextBlock Style="{StaticResource CaptionTextBlockStyle}" Text="{x:Bind ViewModel.Duration, Mode=OneWay}" />
</Grid>
</Grid>
x:Name="CoverContainer"
Height="124"
CornerRadius="4,4,0,0"
Margin="1,0"
VerticalAlignment="Stretch">
<hn:ImageEx
x:Name="CoverImage"
LazyLoadingEnabled="True"
RetryCount="2"
RetryDelay="0:0:5"
Source="{x:Bind ViewModel.CoverUrl, Mode=OneWay}"
Stretch="UniformToFill">
<hn:ImageEx.LoadingTemplate>
<DataTemplate>
<Grid>
<muxc:ProgressRing
Style="{StaticResource PageProgressRingStyle}"
Width="28"
Height="28" />
</Grid>
</DataTemplate>
</hn:ImageEx.LoadingTemplate>
<hn:ImageEx.FailedTemplate>
<DataTemplate>
<Grid Background="{ThemeResource SystemControlForegroundBaseMediumBrush}" Opacity="0.5">
<icons:FluentIconElement
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="{ThemeResource SystemControlForegroundBaseMediumBrush}"
Symbol="Image28Filled" />
</Grid>
</DataTemplate>
</hn:ImageEx.FailedTemplate>
</hn:ImageEx>
<Grid
x:Name="SingleAvatar"
Margin="0,0,12,-18"
HorizontalAlignment="Right"
VerticalAlignment="Bottom">
<Ellipse
Width="40"
Height="40"
Fill="{ThemeResource ControlOnImageFillColorDefaultBrush}" />
<local:UserAvatar
Width="36"
Height="36"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Avatar="{x:Bind ViewModel.PublisherAvatar, Mode=OneWay}"
UserName="{x:Bind ViewModel.PublisherName, Mode=OneWay}" />
</Grid>
<Grid
Margin="8,0,0,8"
Padding="8,4"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
Background="{ThemeResource AppMaskAcrylicBrush}"
CornerRadius="{StaticResource ControlCornerRadius}"
RequestedTheme="Dark">
<TextBlock Style="{StaticResource CaptionTextBlockStyle}" Text="{x:Bind ViewModel.Duration, Mode=OneWay}" />
</Grid>
</Grid>
<Grid
x:Name="ContentContainer"
Grid.Row="1"
Padding="12,8"
RowSpacing="8">
<Grid.RowDefinitions>
<RowDefinition x:Name="ContentRow1" Height="Auto" />
<RowDefinition x:Name="ContentRow2" Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel x:Name="InlineUserContainer" Orientation="Horizontal">
<Grid
x:Name="SingleAvatar"
Margin="0,0,12,-18"
HorizontalAlignment="Right"
VerticalAlignment="Bottom">
<Ellipse
Width="40"
Height="40"
Fill="{ThemeResource ControlOnImageFillColorDefaultBrush}" />
<local:UserAvatar
x:Name="InlineAvatar"
Width="24"
Height="24"
Margin="0,0,8,0"
Width="36"
Height="36"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Avatar="{x:Bind ViewModel.PublisherAvatar, Mode=OneWay}"
UserName="{x:Bind ViewModel.PublisherName, Mode=OneWay}"
Visibility="Collapsed" />
<TextBlock
Style="{StaticResource CaptionTextBlockStyle}"
VerticalAlignment="Center"
Opacity="0.6"
Text="{x:Bind ViewModel.PublisherName, Mode=OneWay}" />
</StackPanel>
UserName="{x:Bind ViewModel.PublisherName, Mode=OneWay}" />
</Grid>
<TextBlock
x:Name="TitleBlock"
<Grid
x:Name="ContentContainer"
Grid.Row="1"
VerticalAlignment="Top"
MaxLines="2"
Text="{x:Bind ViewModel.Title, Mode=OneWay}"
TextTrimming="CharacterEllipsis"
TextWrapping="Wrap">
<ToolTipService.ToolTip>
<ToolTip Content="{x:Bind ViewModel.Title, Mode=OneWay}" IsEnabled="{x:Bind TitleBlock.IsTextTrimmed, Mode=OneWay}" />
</ToolTipService.ToolTip>
</TextBlock>
<StackPanel
Grid.Row="2"
Orientation="Horizontal"
Spacing="12">
<local:IconTextBlock
Opacity="0.6"
Symbol="PlayCircle16Filled"
Text="{x:Bind ViewModel.PlayCount, Mode=OneWay}"
Visibility="{x:Bind IsShowPlayCount, Mode=OneWay}" />
<local:IconTextBlock
Opacity="0.6"
Symbol="SlideText16Filled"
Text="{x:Bind ViewModel.DanmakuCount, Mode=OneWay}"
Visibility="{x:Bind IsShowDanmakuCount, Mode=OneWay}" />
<local:IconTextBlock
Opacity="0.6"
Symbol="ThumbLike16Filled"
Text="{x:Bind ViewModel.LikeCount, Mode=OneWay}"
Visibility="{x:Bind IsShowLikeCount, Mode=OneWay}" />
<local:IconTextBlock
Opacity="0.6"
Symbol="Comment16Filled"
Text="{x:Bind ViewModel.ReplyCount, Mode=OneWay}"
Visibility="{x:Bind IsShowReplayCount, Mode=OneWay}" />
</StackPanel>
Padding="12,8"
RowSpacing="8">
<Grid.RowDefinitions>
<RowDefinition x:Name="ContentRow1" Height="Auto" />
<RowDefinition x:Name="ContentRow2" Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel x:Name="InlineUserContainer" Orientation="Horizontal">
<local:UserAvatar
x:Name="InlineAvatar"
Width="24"
Height="24"
Margin="0,0,8,0"
VerticalAlignment="Center"
Avatar="{x:Bind ViewModel.PublisherAvatar, Mode=OneWay}"
UserName="{x:Bind ViewModel.PublisherName, Mode=OneWay}"
Visibility="Collapsed" />
<TextBlock
Style="{StaticResource CaptionTextBlockStyle}"
VerticalAlignment="Center"
Opacity="0.6"
Text="{x:Bind ViewModel.PublisherName, Mode=OneWay}" />
</StackPanel>
<TextBlock
x:Name="TitleBlock"
Grid.Row="1"
VerticalAlignment="Top"
MaxLines="2"
Text="{x:Bind ViewModel.Title, Mode=OneWay}"
TextTrimming="CharacterEllipsis"
TextWrapping="Wrap">
<ToolTipService.ToolTip>
<ToolTip Content="{x:Bind ViewModel.Title, Mode=OneWay}" IsEnabled="{x:Bind TitleBlock.IsTextTrimmed, Mode=OneWay}" />
</ToolTipService.ToolTip>
</TextBlock>
<StackPanel
Grid.Row="2"
Orientation="Horizontal"
Spacing="12">
<local:IconTextBlock
Opacity="0.6"
Symbol="PlayCircle16Filled"
Text="{x:Bind ViewModel.PlayCount, Mode=OneWay}"
Visibility="{x:Bind IsShowPlayCount, Mode=OneWay}" />
<local:IconTextBlock
Opacity="0.6"
Symbol="SlideText16Filled"
Text="{x:Bind ViewModel.DanmakuCount, Mode=OneWay}"
Visibility="{x:Bind IsShowDanmakuCount, Mode=OneWay}" />
<local:IconTextBlock
Opacity="0.6"
Symbol="ThumbLike16Filled"
Text="{x:Bind ViewModel.LikeCount, Mode=OneWay}"
Visibility="{x:Bind IsShowLikeCount, Mode=OneWay}" />
<local:IconTextBlock
Opacity="0.6"
Symbol="Comment16Filled"
Text="{x:Bind ViewModel.ReplyCount, Mode=OneWay}"
Visibility="{x:Bind IsShowReplayCount, Mode=OneWay}" />
</StackPanel>
</Grid>
</Grid>
</Grid>
</local:CardPanel>
</UserControl>
......@@ -182,7 +182,7 @@ namespace Richasy.Bili.App.Controls
CheckOrientation();
}
private void OnContainerTapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
private void OnContainerClick(object sender, RoutedEventArgs e)
{
}
}
......
// Copyright (c) Richasy. All rights reserved.
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace Richasy.Bili.App.Controls
{
/// <summary>
/// 卡片容器,包含基本的Pointer动画.
/// </summary>
public class CardPanel : Button
{
private long _pointerOverToken;
private long _pressedToken;
/// <summary>
/// Initializes a new instance of the <see cref="CardPanel"/> class.
/// </summary>
public CardPanel()
{
this.DefaultStyleKey = typeof(CardPanel);
Loading += OnCardPanelLoading;
Unloaded += OnCardPanelUnloaded;
}
/// <inheritdoc/>
protected override void OnApplyTemplate() => base.OnApplyTemplate();
private void OnCardPanelLoading(FrameworkElement sender, object args)
{
_pointerOverToken = RegisterPropertyChangedCallback(IsPointerOverProperty, OnPanelStateChanged);
_pressedToken = RegisterPropertyChangedCallback(IsPressedProperty, OnPanelStateChanged);
}
private void OnCardPanelUnloaded(object sender, RoutedEventArgs e)
{
UnregisterPropertyChangedCallback(IsPointerOverProperty, _pointerOverToken);
UnregisterPropertyChangedCallback(IsPressedProperty, _pressedToken);
}
private void OnPanelStateChanged(DependencyObject sender, DependencyProperty dp)
{
if (IsPressed)
{
}
else if (IsPointerOver)
{
}
else
{
}
}
}
}
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Richasy.Bili.App.Controls">
<SolidColorBrush
x:Key="CardBackgroundFillColorPressedBrush"
Opacity="0.8"
Color="{StaticResource CardBackgroundFillColorSecondary}" />
<Style TargetType="local:CardPanel">
<Setter Property="Background" Value="{ThemeResource CardBackgroundFillColorDefaultBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Padding" Value="0" />
<Setter Property="CornerRadius" Value="{StaticResource ControlCornerRadius}" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="UseSystemFocusVisuals" Value="True" />
<Setter Property="AutomationProperties.LocalizedControlType" Value="Card" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:CardPanel">
<Grid x:Name="RootContainer">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="PointerOver">
<VisualState.Setters>
<Setter Target="HostContainer.Background" Value="{ThemeResource CardBackgroundFillColorSecondaryBrush}" />
</VisualState.Setters>
<VisualState.Storyboard>
<Storyboard>
<PointerUpThemeAnimation Storyboard.TargetName="HostContainer" />
<PointerUpThemeAnimation Storyboard.TargetName="ContentPresenter" />
</Storyboard>
</VisualState.Storyboard>
</VisualState>
<VisualState x:Name="Pressed">
<VisualState.Setters>
<Setter Target="HostContainer.Background" Value="{ThemeResource CardBackgroundFillColorPressedBrush}" />
</VisualState.Setters>
<VisualState.Storyboard>
<Storyboard>
<PointerDownThemeAnimation Storyboard.TargetName="HostContainer" />
<PointerDownThemeAnimation Storyboard.TargetName="ContentPresenter" />
</Storyboard>
</VisualState.Storyboard>
</VisualState>
<VisualState x:Name="Disabled" />
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid
x:Name="HostContainer"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}" />
<ContentPresenter
x:Name="ContentPresenter"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Richasy.Bili.App.Controls"
xmlns:hn="using:HN.Controls"
xmlns:icons="using:Fluent.Icons"
xmlns:local="using:Richasy.Bili.App"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls">
<Style TargetType="controls:BannerItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="controls:BannerItem">
<Grid x:Name="RootGrid" CornerRadius="{StaticResource ControlCornerRadius}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonGroup">
<VisualState x:Name="NormalState" />
<VisualState x:Name="PressedState">
<VisualState.Storyboard>
<Storyboard>
<PointerDownThemeAnimation Storyboard.TargetName="BannerImage" />
</Storyboard>
</VisualState.Storyboard>
</VisualState>
<VisualState x:Name="ReleaseState">
<VisualState.Storyboard>
<Storyboard>
<PointerUpThemeAnimation Storyboard.TargetName="BannerImage" />
</Storyboard>
</VisualState.Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<hn:ImageEx
x:Name="BannerImage"
AutomationProperties.Name="{TemplateBinding Title}"
MinWidth="300"
MinHeight="100"
MaxHeight="114"
LazyLoadingEnabled="True"
RetryCount="2"
RetryDelay="0:0:5"
Source="{TemplateBinding Source}"
Stretch="Uniform"
ToolTipService.ToolTip="{TemplateBinding Title}">
<hn:ImageEx.LoadingTemplate>
<DataTemplate>
<Grid>
<muxc:ProgressRing
Style="{StaticResource PageProgressRingStyle}"
Width="28"
Height="28" />
</Grid>
</DataTemplate>
</hn:ImageEx.LoadingTemplate>
<hn:ImageEx.FailedTemplate>
<DataTemplate>
<Grid Background="{ThemeResource SystemControlForegroundBaseMediumBrush}" Opacity="0.5">
<icons:FluentIconElement
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="{ThemeResource SystemControlForegroundBaseMediumBrush}"
Symbol="Image28Filled" />
</Grid>
</DataTemplate>
</hn:ImageEx.FailedTemplate>
</hn:ImageEx>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ms-appx:///Controls/Bili/BannerItem/BannerItem.xaml" />
<ResourceDictionary Source="ms-appx:///Controls/CardPanel/CardPanel.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册