Files
ShrlAlgoToolkit/NeoUI/NeoUITest/NeumorphismWindow.xaml

520 lines
27 KiB
Plaintext
Raw Normal View History

2025-12-28 11:47:54 +08:00
<n:NeoWindow
x:Class="NeoUITest.NeumorphismWindow"
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:dataModel="clr-namespace:NeoUITest.DataModel"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:n="https://github.com/ShrlAlgo/NeoUI"
xmlns:neoUiTest="clr-namespace:NeoUITest"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="NeumorphismWindow"
Width="800"
Height="450"
d:DataContext="{d:DesignInstance Type=neoUiTest:MainWindow}"
d:Height="Auto"
mc:Ignorable="d">
<n:NeoWindow.Resources>
<ResourceDictionary>
<ContextMenu x:Key="ContextMenuDemo">
<MenuItem Header="菜单01" />
<MenuItem Header="菜单02" />
<Separator />
<MenuItem Header="菜单03">
<MenuItem Header="菜单A1" />
<MenuItem Header="菜单A2" />
<Separator />
<MenuItem Header="菜单A3" />
</MenuItem>
</ContextMenu>
<neoUiTest:MainViewModel x:Key="MainViewModel" />
<!-- <ResourceDictionary.MergedDictionaries> -->
<!-- <enu:ThemesDictionary Theme="Dark" /> -->
<!-- <enu:ControlsDictionary /> -->
<!-- </ResourceDictionary.MergedDictionaries> -->
<dataModel:DataGridDemo x:Key="Dgd" />
</ResourceDictionary>
</n:NeoWindow.Resources>
<Grid>
<!--<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>-->
<n:Anchor>
<n:StackPanel Spacing="5">
<GroupBox n:ControlAssist.AnchorHeaderText="装饰器 Decoration" Header="Decoration">
<StackPanel>
<n:FlexibleRowPanel>
<n:SlotBorder
Height="100"
Margin="5"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Content="凹槽"
CornerRadius="16"
FontSize="24"
Foreground="{DynamicResource PrimaryGradientBrush}" />
<n:EmbossBorder
Margin="5"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Content="浮雕"
ContextMenu="{StaticResource ContextMenuDemo}"
CornerRadius="16"
FontSize="24"
Foreground="{DynamicResource PrimaryGradientBrush}"
ToolTip="右键" />
<n:Card
Margin="5"
Content="卡片"
CornerRadius="16"
FontSize="24"
Foreground="{DynamicResource PrimaryGradientBrush}" />
</n:FlexibleRowPanel>
<n:LightedSurface
Height="100"
Margin="5"
Content="在此处移动鼠标"
CornerRadius="16"
FontSize="24"
Foreground="{DynamicResource PrimaryGradientBrush}" />
</StackPanel>
</GroupBox>
<GroupBox n:ControlAssist.AnchorHeaderText="按钮 Buttons" Header="Buttons">
<WrapPanel>
<Button
Margin="5"
Padding="10,5"
Content="浮雕按钮"
FontSize="16"
Style="{StaticResource EmbossButtonStyle}" />
<Button
Margin="5"
Padding="10,5"
FontSize="16"
Style="{StaticResource EmbossIconButtonStyle}" />
<Button
Margin="5"
Padding="10,5"
Content="浮动按钮"
FontSize="16"
Style="{StaticResource FloatButtonStyle}" />
<Button
Margin="5"
Padding="10,5"
Content="光亮按钮"
FontSize="16"
Style="{StaticResource LightedButtonStyle}" />
</WrapPanel>
</GroupBox>
<GroupBox n:ControlAssist.AnchorHeaderText="文本框 TextBox" Header="TextBox">
<StackPanel>
<n:FlexibleRowPanel>
<TextBox Style="{StaticResource SlotTextBoxStyle}" />
<PasswordBox n:InputAssist.Password="453" Style="{StaticResource SlotPasswordBoxStyle}" />
<PasswordBox
n:InputAssist.Clearable="True"
n:InputAssist.IsPasswordVisible="True"
n:InputAssist.Password="453"
Style="{StaticResource SlotPasswordBoxStyle}" />
</n:FlexibleRowPanel>
<n:FlexibleRowPanel>
<DatePicker Style="{StaticResource SlotDatePicker}" />
<n:NumberBox Style="{StaticResource SlotNumberBoxStyle}" />
<n:NumericBox Style="{StaticResource SlotTextBoxStyle}" />
</n:FlexibleRowPanel>
<n:ChooseBox Style="{StaticResource SlotChooseBoxStyle}" />
</StackPanel>
</GroupBox>
<GroupBox n:ControlAssist.AnchorHeaderText="Component" Header="Avatar Tag">
<n:FlexibleRowPanel>
<n:Avatar Style="{StaticResource SlotAvatarStyle}" />
<n:Tag Content="Tag" Style="{StaticResource EmbossTag}" />
<n:Chip Content="Chip" Style="{StaticResource EmbossChipStyle}" />
<n:Chip
Content="必应"
Style="{StaticResource EmbossChipStyle}"
Url="www.bing.com">
<n:Chip.Header>
<n:IconElement Symbol="Search" />
</n:Chip.Header>
</n:Chip>
</n:FlexibleRowPanel>
</GroupBox>
<GroupBox n:ControlAssist.AnchorHeaderText="单选框 RadioButton" Header="RadioButton">
<n:FlexibleRowPanel>
<RadioButton
Margin="5"
Padding="10,5"
Content="浮雕单选框"
FontSize="16"
IsChecked="True"
Style="{StaticResource EmbossRadioButtonStyle}" />
<RadioButton
Margin="5"
Padding="10,5"
Content="浮雕单选框"
FontSize="16"
Style="{StaticResource EmbossRadioButtonStyle}" />
</n:FlexibleRowPanel>
</GroupBox>
<GroupBox n:ControlAssist.AnchorHeaderText="切换 Toggle" Header="Toggle">
<StackPanel>
<n:FlexibleRowPanel>
<ToggleButton
Margin="5"
Padding="10,5"
Content="浮雕切换"
FontSize="16"
IsChecked="True"
Style="{StaticResource EmbossToggleButtonStyle}" />
<n:ToggleSwitch
Margin="5"
Padding="10,5"
Content="浮雕单选框"
FontSize="16"
Style="{StaticResource FloatToggleSwitchStyle}" />
</n:FlexibleRowPanel>
<n:FlexibleRowPanel>
<n:ToggleSwitch
n:ControlAssist.OffContent="{n:Icon SymbolValue=ToggleOff}"
n:ControlAssist.OnContent="{n:Icon ToggleOn}"
n:ControlAssist.ShowText="True"
IsChecked="True"
Style="{StaticResource SlotToggleSwitch}" />
<n:ToggleSwitch
n:ControlAssist.OffContent="{n:Icon SymbolValue=ToggleOff}"
n:ControlAssist.OnContent="{n:Icon ToggleOn}"
IsChecked="True"
IsEnabled="False"
Style="{StaticResource SlotToggleSwitch}" />
<n:ToggleSwitch
n:ControlAssist.ShowText="False"
IsChecked="False"
Style="{StaticResource SlotToggleSwitch}" />
<n:ToggleSwitch
IsChecked="False"
IsEnabled="False"
Style="{StaticResource SlotToggleSwitch}" />
</n:FlexibleRowPanel>
<n:FlexibleRowPanel>
<n:ToggleSwitch IsChecked="False" Style="{StaticResource FloatToggleSwitchStyle}" />
<n:ToggleSwitch
IsChecked="False"
IsEnabled="False"
Style="{StaticResource FloatToggleSwitchStyle}" />
<n:ToggleSwitch IsChecked="True" Style="{StaticResource FloatToggleSwitchStyle}" />
<n:ToggleSwitch
IsChecked="True"
IsEnabled="False"
Style="{StaticResource FloatToggleSwitchStyle}" />
</n:FlexibleRowPanel>
</StackPanel>
</GroupBox>
<GroupBox n:ControlAssist.AnchorHeaderText="复选框 CheckBox" Header="CheckBox">
<StackPanel>
<n:FlexibleRowPanel>
<CheckBox
Margin="5"
Padding="10,5"
Content="浮雕单选框"
FontSize="16"
IsChecked="True"
Style="{StaticResource EmbossCheckBoxStyle}" />
<CheckBox
Margin="5"
Padding="10,5"
Content="浮雕单选框"
FontSize="16"
Style="{StaticResource EmbossCheckBoxStyle}" />
</n:FlexibleRowPanel>
<n:FlexibleRowPanel>
<CheckBox
Margin="5"
Padding="10,5"
Content="浮雕单选框"
FontSize="16"
IsChecked="True"
Style="{StaticResource SlotCheckBoxStyle}" />
<CheckBox
Margin="5"
Padding="10,5"
Content="浮雕单选框"
FontSize="16"
Style="{StaticResource SlotCheckBoxStyle}" />
</n:FlexibleRowPanel>
</StackPanel>
</GroupBox>
<GroupBox n:ControlAssist.AnchorHeaderText="组合框 ComboBox" Header="ComboBox">
<n:FlexibleRowPanel>
<ComboBox
Margin="5"
Padding="10,5"
FontSize="16"
Style="{StaticResource FloatComboBoxStyle}" />
<n:Cascader
DisplayMemberPath="Name"
ItemsSource="{Binding StaffList, Mode=TwoWay}"
SelectedValue="{Binding SelectedItem, Mode=TwoWay}"
SubmenuMemberPath="Children" />
</n:FlexibleRowPanel>
</GroupBox>
<GroupBox n:ControlAssist.AnchorHeaderText="分页导航 Pagination" Header="Pagination">
<n:FlexibleRowPanel>
<n:Pagination
Margin="0,15,0,0"
HorizontalAlignment="Center"
CurrentPage="3"
PageSize="20"
ShowPageInput="True"
Style="{StaticResource EmbossPaginationStyle}"
TotalItems="102" />
</n:FlexibleRowPanel>
</GroupBox>
<GroupBox n:ControlAssist.AnchorHeaderText="标签导航 TabControl" Header="TabControl">
<n:FlexibleRowPanel>
<TabControl Style="{StaticResource NavigationTabControlStyle}">
<TabItem Header="选项卡 1">
<Grid Margin="4">
<!-- <Separator /> -->
<DataGrid
Margin="4"
DataContext="{StaticResource Dgd}"
ItemsSource="{Binding DataCollection}"
SelectedItem="{Binding SelectedDataGridItem}" />
</Grid>
</TabItem>
<TabItem Header="选项卡 2" />
<TabItem Header="禁用选项卡" IsEnabled="False" />
</TabControl>
</n:FlexibleRowPanel>
</GroupBox>
<GroupBox n:ControlAssist.AnchorHeaderText="滑动/滚动条 Slider" Header="Slider Progress">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackPanel>
<CheckBox x:Name="IsSpining" Content="加载中" />
<StackPanel Height="100" Orientation="Horizontal">
<Slider
x:Name="ProgressVerticalSlider"
Maximum="100"
Minimum="0"
Orientation="Vertical"
Value="25" />
<Slider
x:Name="ProgressVerticalSlider1"
IsEnabled="False"
Maximum="100"
Minimum="0"
Orientation="Vertical"
Value="25" />
<ProgressBar
Height="100"
IsIndeterminate="{Binding ElementName=ProgressCheckbox, Path=IsChecked}"
Maximum="100"
Minimum="0"
Orientation="Vertical"
Style="{StaticResource SlotProgressBarStyle}"
Value="{Binding ElementName=ProgressVerticalSlider, Path=Value}" />
<ProgressBar
Height="100"
IsEnabled="False"
IsIndeterminate="{Binding ElementName=ProgressCheckbox, Path=IsChecked}"
Maximum="100"
Minimum="0"
Orientation="Vertical"
Style="{StaticResource SlotProgressBarStyle}"
Value="{Binding ElementName=ProgressVerticalSlider, Path=Value}" />
<ProgressBar
Height="100"
IsEnabled="False"
IsIndeterminate="True"
Maximum="100"
Minimum="0"
Orientation="Vertical"
Style="{StaticResource SlotProgressBarStyle}"
Value="100" />
</StackPanel>
</StackPanel>
<Grid Grid.Column="1" Panel.ZIndex="10">
<n:Spin Spinning="{Binding ElementName=IsSpining, Path=IsChecked}" Tip="加载中...">
<StackPanel x:Name="SpinPanel">
<CheckBox x:Name="ProgressCheckbox" Content="进度待定" />
<Slider
x:Name="ProgressSlider"
Maximum="100"
Minimum="0"
Value="25" />
<Slider
x:Name="ProgressTickSlider"
Maximum="100"
Minimum="0"
TickFrequency="10"
TickPlacement="TopLeft" />
<Slider
x:Name="ProgressSlider1"
IsEnabled="False"
Maximum="100"
Minimum="0"
Value="25" />
<ProgressBar
IsIndeterminate="{Binding ElementName=ProgressCheckbox, Path=IsChecked}"
Maximum="100"
Minimum="0"
Style="{StaticResource SlotProgressBarStyle}"
Value="{Binding ElementName=ProgressSlider, Path=Value}" />
<ProgressBar
IsEnabled="False"
IsIndeterminate="{Binding ElementName=ProgressCheckbox, Path=IsChecked}"
Maximum="100"
Minimum="0"
Style="{StaticResource SlotProgressBarStyle}"
Value="{Binding ElementName=ProgressSlider, Path=Value}" />
</StackPanel>
</n:Spin>
<n:Spin
HorizontalAlignment="Left"
Spinning="{Binding ElementName=IsSpining, Path=IsChecked}"
Tip="加载中...">
<n:Spin.Indicator>
<n:IconElement Symbol="Downloading" />
</n:Spin.Indicator>
</n:Spin>
</Grid>
</Grid>
</GroupBox>
<GroupBox n:ControlAssist.AnchorHeaderText="列表框 ListBox" Header="ListBox">
<n:StackPanel Orientation="Horizontal" Spacing="3">
<n:StackPanel Spacing="10">
<ListBox
HorizontalAlignment="Center"
VerticalAlignment="Center"
n:BehaviorAssist.EnableSlideAnimation="True"
SelectedIndex="1"
Style="{StaticResource SlideTabGroupListBoxStyle}">
<!-- 这里是你的数据项 -->
<sys:String>Tab 1</sys:String>
<sys:String>Tab 2</sys:String>
<sys:String>Tab 3</sys:String>
<sys:String>Another Tab</sys:String>
</ListBox>
<ListBox
HorizontalAlignment="Center"
VerticalAlignment="Center"
n:BehaviorAssist.EnableSlideAnimation="True"
IsEnabled="False"
SelectedIndex="1"
Style="{StaticResource SlideTabGroupListBoxStyle}">
<!-- 这里是你的数据项 -->
<sys:String>Tab 1</sys:String>
<sys:String>Tab 2</sys:String>
<sys:String>Tab 3</sys:String>
<sys:String>Another Tab</sys:String>
</ListBox>
<ListBox
HorizontalAlignment="Center"
VerticalAlignment="Center"
n:BehaviorAssist.EnableSlideAnimation="True"
SelectedIndex="1"
Style="{StaticResource EmbossChipListBoxStyle}">
<!-- 这里是你的数据项 -->
<sys:String>Tab 1</sys:String>
<sys:String>Tab 2</sys:String>
<sys:String>Tab 3</sys:String>
<sys:String>Another Tab</sys:String>
</ListBox>
</n:StackPanel>
<n:StackPanel Orientation="Horizontal" Spacing="3">
<ListBox
HorizontalAlignment="Center"
VerticalAlignment="Center"
n:ControlAssist.Orientation="Vertical"
SelectedIndex="1"
SelectionMode="Multiple"
Style="{StaticResource SlotTabGroupListBoxStyle}">
<ListBoxItem Content="Home" />
<ListBoxItem Content="Away" />
<ListBoxItem Content="Night" />
</ListBox>
<ListBox
HorizontalAlignment="Center"
VerticalAlignment="Center"
n:ControlAssist.Orientation="Vertical"
IsEnabled="False"
SelectedIndex="1"
Style="{StaticResource SlotTabGroupListBoxStyle}">
<ListBoxItem Content="Home" />
<ListBoxItem Content="Away" />
<ListBoxItem Content="Night" />
</ListBox>
<ListBox
HorizontalAlignment="Center"
VerticalAlignment="Center"
n:BehaviorAssist.EnableSlideAnimation="True"
n:ControlAssist.Orientation="Vertical"
SelectedIndex="0"
SelectionMode="Multiple"
Style="{StaticResource SlideTabGroupListBoxStyle}">
<!-- 这里是你的数据项 -->
<sys:String>Tab 1</sys:String>
<sys:String>Tab 2</sys:String>
<sys:String>Tab 3</sys:String>
</ListBox>
</n:StackPanel>
</n:StackPanel>
</GroupBox>
<GroupBox n:ControlAssist.AnchorHeaderText="折叠 Accordion" Header="Accordion">
<n:Accordion
Width="200"
BorderThickness="1"
Style="{StaticResource EmbossAccordionStyle}">
<n:AccordionItem Header="User Profile" IsExpanded="True">
<StackPanel Margin="10">
<TextBlock Text="Name: John Doe" />
<TextBlock Text="Email: john.doe@example.com" />
</StackPanel>
</n:AccordionItem>
<n:AccordionItem Header="User Profile">
<StackPanel Margin="10">
<TextBlock Text="Name: John Doe" />
<TextBlock Text="Email: john.doe@example.com" />
</StackPanel>
</n:AccordionItem>
<n:AccordionItem Header="User Profile">
<StackPanel Margin="10">
<TextBlock Text="Name: John Doe" />
<TextBlock Text="Email: john.doe@example.com" />
</StackPanel>
</n:AccordionItem>
<n:AccordionItem Header="Application Settings">
<StackPanel>
<CheckBox Content="Enable Dark Mode" />
<CheckBox Content="Auto-save every 5 minutes" />
</StackPanel>
</n:AccordionItem>
<n:AccordionItem Header="Help &amp; Support">
<TextBlock
Margin="10"
Text="For support, please visit our website."
TextWrapping="Wrap" />
</n:AccordionItem>
</n:Accordion>
</GroupBox>
</n:StackPanel>
</n:Anchor>
</Grid>
</n:NeoWindow>