更新客户端渲染,更新了壳

This commit is contained in:
QWQLwToo
2026-07-06 23:05:40 +08:00
parent e7dd87bf7e
commit 31d778710b
1311 changed files with 172662 additions and 1582 deletions
@@ -0,0 +1,29 @@
<Page
x:Class="Wpf.Ui.Demo.SetResources.Simple.Views.Pages.DashboardPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
Title="DashboardPage"
d:DesignHeight="450"
d:DesignWidth="800"
ui:Design.Background="{DynamicResource ApplicationBackgroundBrush}"
ui:Design.Foreground="{DynamicResource TextFillColorPrimaryBrush}"
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
mc:Ignorable="d"
>
<Grid Margin="42" VerticalAlignment="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ui:Button
Grid.Column="0"
Click="OnBaseButtonClick"
Content="Click me!"
Icon="{ui:SymbolIcon Fluent24}"
/>
<TextBlock x:Name="CounterTextBlock" Grid.Column="1" Margin="12,0,0,0" VerticalAlignment="Center" />
</Grid>
</Page>
@@ -0,0 +1,34 @@
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
// All Rights Reserved.
using System.Windows;
namespace Wpf.Ui.Demo.SetResources.Simple.Views.Pages;
/// <summary>
/// Interaction logic for DashboardPage.xaml
/// </summary>
public partial class DashboardPage
{
private int _counter = 0;
public DashboardPage()
{
App.ApplyTheme(this);
DataContext = this;
InitializeComponent();
CounterTextBlock.SetCurrentValue(System.Windows.Controls.TextBlock.TextProperty, _counter.ToString());
}
private void OnBaseButtonClick(object sender, RoutedEventArgs e)
{
CounterTextBlock.SetCurrentValue(
System.Windows.Controls.TextBlock.TextProperty,
(++_counter).ToString()
);
}
}
@@ -0,0 +1,42 @@
<Page
x:Class="Wpf.Ui.Demo.SetResources.Simple.Views.Pages.DataPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
xmlns:models="clr-namespace:Wpf.Ui.Demo.SetResources.Simple.Models"
Title="DataPage"
d:DesignHeight="450"
d:DesignWidth="800"
ui:Design.Background="{DynamicResource ApplicationBackgroundBrush}"
ui:Design.Foreground="{DynamicResource TextFillColorPrimaryBrush}"
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
ScrollViewer.CanContentScroll="False"
mc:Ignorable="d"
>
<Grid Margin="42">
<ui:VirtualizingItemsControl
x:Name="ColorsItemsControl"
Foreground="{DynamicResource TextFillColorSecondaryBrush}"
VirtualizingPanel.CacheLengthUnit="Item"
>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type models:DataColor}">
<ui:Button
Width="80"
Height="80"
Margin="2"
Padding="0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Appearance="Secondary"
Background="{Binding Color, Mode=OneWay}"
FontSize="25"
Icon="Fluent24"
/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ui:VirtualizingItemsControl>
</Grid>
</Page>
@@ -0,0 +1,51 @@
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
// All Rights Reserved.
using System;
using System.Collections.ObjectModel;
using System.Windows.Media;
using Wpf.Ui.Demo.SetResources.Simple.Models;
namespace Wpf.Ui.Demo.SetResources.Simple.Views.Pages;
/// <summary>
/// Interaction logic for DataView.xaml
/// </summary>
public partial class DataPage
{
public ObservableCollection<DataColor> ColorsCollection { get; private set; } = [];
public DataPage()
{
App.ApplyTheme(this);
InitializeData();
InitializeComponent();
ColorsItemsControl.ItemsSource = ColorsCollection;
}
private void InitializeData()
{
var random = new Random();
for (int i = 0; i < 8192; i++)
{
ColorsCollection.Add(
new DataColor
{
Color = new SolidColorBrush(
Color.FromArgb(
(byte)200,
(byte)random.Next(0, 250),
(byte)random.Next(0, 250),
(byte)random.Next(0, 250)
)
),
}
);
}
}
}
@@ -0,0 +1,55 @@
<Page
x:Class="Wpf.Ui.Demo.SetResources.Simple.Views.Pages.ExpanderPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Wpf.Ui.Demo.SetResources.Simple.Views.Pages"
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
mc:Ignorable="d"
Title="ExpanderPage"
d:DesignHeight="450"
d:DesignWidth="800"
ui:Design.Background="{DynamicResource ApplicationBackgroundBrush}"
ui:Design.Foreground="{DynamicResource TextFillColorPrimaryBrush}"
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
ScrollViewer.CanContentScroll="False"
>
<Grid>
<ui:DataGrid x:Name="Group" SelectionMode="Single" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="#" Binding="{Binding Selected}" />
<DataGridTextColumn Header="Name" Binding="{Binding Name}" />
</DataGrid.Columns>
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Grid>
<Expander IsExpanded="True">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock
Margin="10"
FontWeight="Bold"
Text="{Binding Name,
StringFormat=Group name: {0}}"
></TextBlock>
</StackPanel>
</Expander.Header>
<ItemsPresenter />
</Expander>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</DataGrid.GroupStyle>
</ui:DataGrid>
</Grid>
</Page>
@@ -0,0 +1,39 @@
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
// All Rights Reserved.
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Windows.Controls;
using System.Windows.Data;
using Wpf.Ui.Demo.SetResources.Simple.Models;
namespace Wpf.Ui.Demo.SetResources.Simple.Views.Pages;
public partial class ExpanderPage
{
public ObservableCollection<DataGroup> GroupCollection { get; private set; } = [];
public ExpanderPage()
{
App.ApplyTheme(this);
InitializeData();
InitializeComponent();
ICollectionView collectionView = CollectionViewSource.GetDefaultView(GroupCollection);
collectionView.GroupDescriptions.Add(new PropertyGroupDescription(nameof(DataGroup.GroupName)));
Group.ItemsSource = collectionView;
}
private void InitializeData()
{
GroupCollection.Add(new DataGroup(false, "Audi", "Auto"));
GroupCollection.Add(new DataGroup(false, "Samsung S24 Ultra", "Phone"));
GroupCollection.Add(new DataGroup(true, "Apple iPhone 16 Pro", "Phone"));
GroupCollection.Add(new DataGroup(true, "Bugatti", "Auto"));
GroupCollection.Add(new DataGroup(false, "Lamborghini", "Auto"));
}
}
@@ -0,0 +1,36 @@
<Page
x:Class="Wpf.Ui.Demo.SetResources.Simple.Views.Pages.SettingsPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
Title="SettingsPage"
d:DesignHeight="450"
d:DesignWidth="800"
ui:Design.Background="{DynamicResource ApplicationBackgroundBrush}"
ui:Design.Foreground="{DynamicResource TextFillColorPrimaryBrush}"
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
mc:Ignorable="d"
>
<StackPanel Margin="42">
<TextBlock FontSize="20" FontWeight="Medium" Text="Personalization" />
<TextBlock Margin="0,12,0,0" Text="Theme" />
<RadioButton
x:Name="LightThemeRadioButton"
Margin="0,12,0,0"
Checked="OnLightThemeRadioButtonChecked"
Content="Light"
GroupName="themeSelect"
/>
<RadioButton
x:Name="DarkThemeRadioButton"
Margin="0,8,0,0"
Checked="OnDarkThemeRadioButtonChecked"
Content="Dark"
GroupName="themeSelect"
/>
<TextBlock Margin="0,24,0,0" FontSize="20" FontWeight="Medium" Text="About WPF UI - Simple Demo" />
<TextBlock x:Name="AppVersionTextBlock" Margin="0,12,0,0" />
</StackPanel>
</Page>
@@ -0,0 +1,49 @@
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
// All Rights Reserved.
using System.Windows;
using Wpf.Ui.Appearance;
namespace Wpf.Ui.Demo.SetResources.Simple.Views.Pages;
/// <summary>
/// Interaction logic for SettingsPage.xaml
/// </summary>
public partial class SettingsPage
{
public SettingsPage()
{
App.ApplyTheme(this);
InitializeComponent();
AppVersionTextBlock.Text = $"WPF UI - Simple Demo - {GetAssemblyVersion()}";
if (Appearance.ApplicationThemeManager.GetAppTheme() == ApplicationTheme.Dark)
{
DarkThemeRadioButton.IsChecked = true;
}
else
{
LightThemeRadioButton.IsChecked = true;
}
}
private void OnLightThemeRadioButtonChecked(object sender, RoutedEventArgs e)
{
App.Apply(ApplicationTheme.Light);
}
private void OnDarkThemeRadioButtonChecked(object sender, RoutedEventArgs e)
{
App.Apply(ApplicationTheme.Dark);
}
private static string GetAssemblyVersion()
{
return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version?.ToString()
?? string.Empty;
}
}