添加项目文件。

This commit is contained in:
MoYue 2024-01-30 08:48:46 +08:00
parent 584b527495
commit c6e5207d9e
37 changed files with 1098 additions and 0 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,44 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<None Remove="Fonts\iconfont.ttf" />
<None Remove="Images\Login\bird.png" />
<None Remove="Images\Login\logo.png" />
<None Remove="Images\Login\ship.png" />
<None Remove="Images\Login\Trademark.png" />
<None Remove="Images\Login\Warning.png" />
<None Remove="Images\Login\wave.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Fonts\iconfont.ttf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
<Resource Include="Images\Login\bird.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
<Resource Include="Images\Login\logo.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
<Resource Include="Images\Login\ship.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
<Resource Include="Images\Login\Trademark.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
<Resource Include="Images\Login\Warning.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
<Resource Include="Images\Login\wave.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
</ItemGroup>
</Project>

View File

@ -0,0 +1,129 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="Button" x:Key="NormalButtonStyle">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="10" Color="#333" ShadowDepth="0" Opacity="0.1"/>
</Setter.Value>
</Setter>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border BorderBrush="#16a1ff" BorderThickness="0" CornerRadius="5" ClipToBounds="True">
<Border.Background>
<LinearGradientBrush StartPoint="0,1" EndPoint="1,0">
<GradientStop Color="#16a1ff" Offset="0.3"/>
<GradientStop Color="#01c8fe" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
<Grid>
<Border CornerRadius="5">
<Border.Background>
<RadialGradientBrush Center="0,1" GradientOrigin="0,1" RadiusX="0.4" RadiusY="0.8">
<GradientStop Color="#88b4fee7" Offset="0.2"/>
<GradientStop Color="Transparent" Offset="1"/>
</RadialGradientBrush>
</Border.Background>
</Border>
<Border CornerRadius="4" Background="{TemplateBinding Background}"/>
<Border Background="#11000000" CornerRadius="5" Visibility="Collapsed" Name="mask"/>
<ContentPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="mask" Property="Visibility" Value="Visible"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="Button" x:Key="CancelButtonStyle">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="10" Color="#333" ShadowDepth="0" Opacity="0.1"/>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="#555"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border BorderBrush="#DDD" BorderThickness="1" CornerRadius="5" ClipToBounds="True">
<Border.Background>
<LinearGradientBrush StartPoint="0,1" EndPoint="1,0">
<GradientStop Color="#DDD" Offset="0.3"/>
<GradientStop Color="#EEE" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
<Grid>
<Border CornerRadius="5">
<Border.Background>
<RadialGradientBrush Center="0,1" GradientOrigin="0,1" RadiusX="0.4" RadiusY="0.8">
<GradientStop Color="#EEE" Offset="0.2"/>
<GradientStop Color="Transparent" Offset="1"/>
</RadialGradientBrush>
</Border.Background>
</Border>
<Border Background="#08000000" CornerRadius="5" Visibility="Collapsed" Name="mask"/>
<ContentPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="mask" Property="Visibility" Value="Visible"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="Button" x:Key="WindowControlButtonStyle">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid Background="Transparent">
<Border Background="#11000000" Visibility="Collapsed" Name="mask"/>
<ContentPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="mask" Property="Visibility" Value="Visible"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="Button" x:Key="ToolButtonStlye">
<Setter Property="Foreground" Value="#888"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border CornerRadius="3" BorderBrush="#EEE" BorderThickness="1"
Background="#F7F9FA" Name="border">
<ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center"
Margin="10,6"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="BorderBrush" Value="#EEE"/>
<Setter TargetName="border" Property="Background" Value="#EEE"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View File

@ -0,0 +1,86 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ControlTemplate x:Key="ComboBoxToggleButton"
TargetType="{x:Type ToggleButton}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="20" />
</Grid.ColumnDefinitions>
<Border x:Name="Border" Grid.ColumnSpan="2" CornerRadius="3" BorderThickness="1" BorderBrush="#EEE"
Background="#FFF"/>
<Path x:Name="Arrow" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center"
Data="M 0 0 L 4 4 L 8 0 Z" Fill="#888">
</Path>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="Background" Value="#EEE"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<ControlTemplate x:Key="ComboBoxTextBox"
TargetType="{x:Type TextBox}">
<Border x:Name="PART_ContentHost"
Focusable="False"
Background="{TemplateBinding Background}" />
</ControlTemplate>
<Style TargetType="ComboBox" x:Key="PropComboBoxStyle">
<Setter Property="SnapsToDevicePixels" Value="true" />
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.CanContentScroll" Value="true" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBox}">
<Grid>
<ToggleButton x:Name="ToggleButton" Template="{StaticResource ComboBoxToggleButton}"
Focusable="false"
ClickMode="Press"
IsChecked="{Binding IsDropDownOpen, Mode=TwoWay,
RelativeSource={RelativeSource TemplatedParent}}"/>
<ContentPresenter x:Name="ContentSite"
IsHitTestVisible="False"
Content="{TemplateBinding SelectionBoxItem}"
ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
Margin="5,3"
VerticalAlignment="Center"
HorizontalAlignment="Left">
</ContentPresenter>
<Popup x:Name="Popup" Placement="Bottom" IsOpen="{TemplateBinding IsDropDownOpen}"
AllowsTransparency="True" Focusable="False" PopupAnimation="Slide">
<Grid x:Name="DropDown" SnapsToDevicePixels="True" MinWidth="{TemplateBinding ActualWidth}"
MaxHeight="{TemplateBinding MaxDropDownHeight}">
<Border x:Name="DropDownBorder" BorderThickness="1" BorderBrush="#FF888888" Background="White">
</Border>
<ScrollViewer Margin="4,6,4,6" SnapsToDevicePixels="True">
<StackPanel IsItemsHost="True"
KeyboardNavigation.DirectionalNavigation="Contained" />
</ScrollViewer>
</Grid>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="HasItems" Value="false">
<Setter TargetName="DropDownBorder" Property="MinHeight" Value="95" />
</Trigger>
<Trigger Property="IsGrouping" Value="true">
<Setter Property="ScrollViewer.CanContentScroll" Value="false" />
</Trigger>
<Trigger SourceName="Popup" Property="AllowsTransparency" Value="true">
<Setter TargetName="DropDownBorder" Property="CornerRadius" Value="4" />
<Setter TargetName="DropDownBorder" Property="Margin" Value="0,2,0,0" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View File

@ -0,0 +1,158 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="DataGridCell" x:Key="DataGridCellStyle">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridCell">
<Border Background="Transparent">
<ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Stretch"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Foreground" Value="#444"/>
</Trigger>
<DataTrigger Binding="{Binding State}" Value="0">
<Setter Property="Foreground" Value="red"/>
</DataTrigger>
</Style.Triggers>
</Style>
<Style TargetType="DataGridColumnHeader" x:Key="DataGridColumnHeaderfStyle">
<Setter Property="Background" Value="#A9CFF9"/>
<Setter Property="Height" Value="30"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridColumnHeader">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="5" Margin="0,1">
<TextBlock Text="{TemplateBinding Content}" VerticalAlignment="Center" HorizontalAlignment="Center"
Foreground="#FFF"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="DataGridRow" x:Key="DataGridRowStyle">
<Setter Property="Height" Value="30"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<!--行头样式-->
<Setter Property="HeaderStyle">
<Setter.Value>
<Style TargetType="DataGridRowHeader">
<Setter Property="Width" Value="0"/>
</Style>
</Setter.Value>
</Setter>
<Style.Triggers>
<!--条纹间隔需要配合DataGrid.AlternationCount属性-->
<Trigger Property="AlternationIndex" Value="1" >
<Setter Property="Background" Value="#44FFFFFF" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#22FFFFFF"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#33FFFFFF"/>
</Trigger>
<DataTrigger Binding="{Binding State}" Value="0">
<Setter Property="Foreground" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
<!--DataGrid样式-->
<Style TargetType="{x:Type DataGrid}">
<!--网格线颜色-->
<Setter Property="CanUserResizeColumns" Value="True"/>
<Setter Property="Foreground" Value="#444" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="HorizontalGridLinesBrush" Value="#EEE"/>
<Setter Property="VerticalGridLinesBrush" Value="Transparent"/>
<Setter Property="CanUserAddRows" Value="False"/>
<Setter Property="AutoGenerateColumns" Value="False"/>
<Setter Property="IsReadOnly" Value="True"/>
<Setter Property="CanUserSortColumns" Value="False"/>
<Setter Property="AlternationCount" Value="2"/>
<Setter Property="CellStyle" Value="{StaticResource DataGridCellStyle}"/>
<Setter Property="ColumnHeaderStyle" Value="{StaticResource DataGridColumnHeaderfStyle}"/>
<Setter Property="RowStyle" Value="{StaticResource DataGridRowStyle}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGrid}">
<Border x:Name="border" SnapsToDevicePixels="True" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
<Border.Background>
<SolidColorBrush Color="{DynamicResource ControlLightColor}" />
</Border.Background>
<ScrollViewer x:Name="DG_ScrollViewer" Focusable="false">
<ScrollViewer.Template>
<ControlTemplate TargetType="{x:Type ScrollViewer}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<DataGridColumnHeadersPresenter x:Name="PART_ColumnHeadersPresenter"
Grid.Column="0" Grid.ColumnSpan="3"
Visibility="{Binding HeadersVisibility,
ConverterParameter={x:Static DataGridHeadersVisibility.Column},
Converter={x:Static DataGrid.HeadersVisibilityConverter},
RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter" Grid.ColumnSpan="3"
Grid.Row="1" CanContentScroll="{TemplateBinding CanContentScroll}" />
<ScrollBar x:Name="PART_VerticalScrollBar" Grid.Column="1"
Grid.Row="1" Orientation="Vertical" Width="12"
ViewportSize="{TemplateBinding ViewportHeight}"
Maximum="{TemplateBinding ScrollableHeight}"
Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
HorizontalAlignment="Right"/>
<Grid Grid.Column="1" Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding NonFrozenColumnsViewportHorizontalOffset,
RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ScrollBar x:Name="PART_HorizontalScrollBar" Grid.Column="1"
Orientation="Horizontal" ViewportSize="{TemplateBinding ViewportWidth}"
Maximum="{TemplateBinding ScrollableWidth}"
Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"/>
</Grid>
</Grid>
</ControlTemplate>
</ScrollViewer.Template>
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View File

@ -0,0 +1,8 @@
namespace StandardDesign.Common
{
public class Class1
{
}
}

View File

@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,8 @@
namespace StandardDesign.Components
{
public class Class1
{
}
}

View File

@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,8 @@
namespace StandardDesign.DataAccess
{
public class Class1
{
}
}

View File

@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,8 @@
namespace StandardDesign.Entities
{
public class Class1
{
}
}

View File

@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,8 @@
namespace StandardDesign.IDataAccess
{
public class Class1
{
}
}

View File

@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,8 @@
namespace StandardDesign.Models
{
public class Class1
{
}
}

View File

@ -0,0 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\StandardDesign.Common\StandardDesign.Common.csproj" />
<ProjectReference Include="..\StandardDesign.DataAccess\StandardDesign.DataAccess.csproj" />
<ProjectReference Include="..\StandardDesign.IDataAccess\StandardDesign.IDataAccess.csproj" />
<ProjectReference Include="..\StandardDesign.ViewModels\StandardDesign.ViewModels.csproj" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,10 @@
using GalaSoft.MvvmLight;
namespace StandardDesign.ViewModels
{
public class LoginViewModel : ViewModelBase
{
}
}

View File

@ -0,0 +1,14 @@
using GalaSoft.MvvmLight;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StandardDesign.ViewModels
{
public class MainViewModel : ViewModelBase
{
}
}

View File

@ -0,0 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MvvmLightLibs" Version="5.4.1.1" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,49 @@
using CommonServiceLocator;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Ioc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StandardDesign.ViewModels
{
public class ViewModelLocator
{
public ViewModelLocator()
{
//管理对象的生命周期
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
//注册ioc容器
SimpleIoc.Default.Register<LoginViewModel>();
SimpleIoc.Default.Register<MainViewModel>();
// SimpleIoc.Default.Register<ILoacalDataAccess, LoacalDataAccess>();
}
// 这种属性定义方式会有歧义,感觉好像定义的字段
public LoginViewModel LoginViewModel => ServiceLocator.Current.GetInstance<LoginViewModel>();
public MainViewModel MainViewModel => ServiceLocator.Current.GetInstance<MainViewModel>();
/// <summary>
/// 通过ViewModelLocator对象实例 进行对应的VM对象的销毁
/// </summary>
/// <typeparam name="T"></typeparam>
public static void Cleanup<T>() where T : ViewModelBase
{
if (SimpleIoc.Default.IsRegistered<T>() && SimpleIoc.Default.ContainsCreated<T>())
{
var instances = SimpleIoc.Default.GetAllCreatedInstances<T>();
foreach (var instance in instances)
{
instance.Cleanup();
}
SimpleIoc.Default.Unregister<T>();
SimpleIoc.Default.Register<T>();
}
}
}
}

View File

@ -0,0 +1,212 @@
<Window x:Class="StandardDesign.Views.LoginView"
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:StandardDesign.Views"
xmlns:c="clr-namespace:StandardDesign.Common;assembly=StandardDesign.Common"
DataContext="{Binding Source={StaticResource locator},Path=LoginViewModel}"
mc:Ignorable="d" Name="win" FontFamily="Microsoft YaHei"
ResizeMode="NoResize" Background="#f1f5fd" WindowStartupLocation="CenterScreen"
Title="系统登录" Height="540" Width="900">
<!--Win7下的效果不一样-->
<WindowChrome.WindowChrome>
<WindowChrome GlassFrameThickness="1"/>
</WindowChrome.WindowChrome>
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/StandardDesign.Assets;component/Styles/ButtonStyles.xaml"/>
<ResourceDictionary>
<Style TargetType="TextBox" x:Key="UserNameTextBoxStyle">
<Setter Property="FontSize" Value="13"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
<Border BorderBrush="#DDD"
BorderThickness="0,0,0,1" Height="40"
SnapsToDevicePixels="True" Name="border">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="&#xe610;"
FontFamily="{DynamicResource Iconfont}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
FontSize="15">
<TextBlock.Foreground>
<LinearGradientBrush StartPoint="0,1" EndPoint="1,0">
<GradientStop Color="#16a1ff" Offset="0"/>
<GradientStop Color="#b4fee7" Offset="0.65"/>
<GradientStop Color="#16a1ff" Offset="1"/>
</LinearGradientBrush>
</TextBlock.Foreground>
</TextBlock>
<TextBlock Text="请输入工号/手机号/用户名" Grid.Column="1" VerticalAlignment="Center"
Foreground="#DDD" Name="markText" Visibility="Collapsed"/>
<ScrollViewer Name="PART_ContentHost" Grid.Column="1"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="BorderBrush" TargetName="border" Value="#FF7EB4EA"/>
</Trigger>
<Trigger Property="IsKeyboardFocused" Value="true">
<Setter Property="BorderBrush" TargetName="border" Value="#FF569DE5"/>
</Trigger>
<DataTrigger Binding="{Binding Path=Text,RelativeSource={RelativeSource Mode=Self}}" Value="">
<Setter Property="Visibility" TargetName="markText" Value="Visible"/>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="PasswordBox" x:Key="PasswordBoxStyle">
<Setter Property="FontSize" Value="13"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="PasswordBox">
<Border BorderBrush="#DDD" BorderThickness="0,0,0,1" Height="40" SnapsToDevicePixels="True" Name="border">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="&#xe602;" FontFamily="{DynamicResource Iconfont}" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="15">
<TextBlock.Foreground>
<LinearGradientBrush StartPoint="0,1" EndPoint="1,0">
<GradientStop Color="#16a1ff" Offset="0"/>
<GradientStop Color="#b4fee7" Offset="0.65"/>
<GradientStop Color="#16a1ff" Offset="1"/>
</LinearGradientBrush>
</TextBlock.Foreground>
</TextBlock>
<TextBlock Text="请输入登录密码" Grid.Column="1" VerticalAlignment="Center" Foreground="#DDD" Name="markText"
Visibility="Collapsed"/>
<ScrollViewer Name="PART_ContentHost" Grid.Column="1"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="BorderBrush" TargetName="border" Value="#FF7EB4EA"/>
</Trigger>
<Trigger Property="IsKeyboardFocused" Value="true">
<Setter Property="BorderBrush" TargetName="border" Value="#FF569DE5"/>
</Trigger>
<DataTrigger Binding="{Binding Path=User.Password}" Value="">
<Setter Property="Visibility" TargetName="markText" Value="Visible"/>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<!--左侧区域-->
<Grid Grid.Column="0" Background="#000A7B">
<Grid.RowDefinitions>
<RowDefinition Height="70"/>
<RowDefinition Height="20"/>
<RowDefinition Height="120"/>
<RowDefinition Height="20"/>
<RowDefinition Height="70"/>
<RowDefinition Height="26"/>
<RowDefinition Height="26"/>
<RowDefinition Height="26" />
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<!--左上角Logo图标-->
<Border CornerRadius="10,0,0,10" BorderThickness="2" Width="100" Height="50" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10.0">
<Border.Background>
<ImageBrush ImageSource="pack://application:,,,/StandardDesign.Assets;component/Images/Login/logo.png" />
</Border.Background>
</Border>
<!--右上角鸟图标-->
<Border CornerRadius="10" BorderThickness="2" Width="240" Height="50" VerticalAlignment="Top" HorizontalAlignment="Right" >
<Border.Background>
<ImageBrush ImageSource="pack://application:,,,/StandardDesign.Assets;component/Images/Login/bird.png" />
</Border.Background>
</Border>
<!--正中间Logo图标-->
<Border Grid.Row="2" CornerRadius="10" BorderThickness="2" Width="100" Height="100" VerticalAlignment="Center" HorizontalAlignment="Stretch" >
<Border.Background>
<ImageBrush ImageSource="pack://application:,,,/StandardDesign.Assets;component/Images/Login/Trademark.png" />
</Border.Background>
</Border>
<TextBlock Grid.Row="4" Text="岛礁观测系统" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White" FontSize="30"/>
<TextBlock Grid.Row="5" Text="集成水质、水文监测和水下成像技术" HorizontalAlignment="Center" VerticalAlignment="Bottom" Foreground="White" FontSize="15"/>
<TextBlock Grid.Row="6" Text="实现对珊瑚礁附近海域温度、盐度、深度、叶绿素、" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White" FontSize="15"/>
<TextBlock Grid.Row="7" Text="CO2、流速等多参数要素及水下高清视频的长期在线观测" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White" FontSize="15"/>
<TextBlock Grid.Row="8" Text="2024 - ZTMS" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="White" FontSize="20" />
<!--左下角船图标-->
<Border Grid.Row="9" CornerRadius="10" BorderThickness="2" Width="170" Height="70" VerticalAlignment="Bottom" HorizontalAlignment="Left" >
<Border.Background>
<ImageBrush ImageSource="pack://application:,,,/StandardDesign.Assets;component/Images/Login/ship.png" />
</Border.Background>
</Border>
<!--右下角波浪线图标-->
<Border Grid.Row="9" CornerRadius="10" BorderThickness="2" Width="286" Height="20" VerticalAlignment="Bottom" HorizontalAlignment="Right" >
<Border.Background>
<ImageBrush ImageSource="pack://application:,,,/StandardDesign.Assets;component/Images/Login/wave.png" />
</Border.Background>
</Border>
</Grid>
<!--右侧区域-->
<Grid Grid.Column="1" Background="#000A7B" >
<Border CornerRadius="60,0,0,60" Background="White">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition Height="30"/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<!--窗口控制按钮-->
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="20,10">
<Button Content="&#xEA6A;" FontFamily="{DynamicResource Iconfont}" FontSize="14" Click="Button_MinClick" Style="{StaticResource WindowControlButtonStyle}" WindowChrome.IsHitTestVisibleInChrome="True"/>
<Button Content="&#xE653;" FontFamily="{DynamicResource Iconfont}" FontSize="14" Click="Button_MaxClick" Style="{StaticResource WindowControlButtonStyle}" WindowChrome.IsHitTestVisibleInChrome="True" Margin="10,0"/>
<Button Content="&#xe635;" FontFamily="{DynamicResource Iconfont}" FontSize="14" Click="Button_CloseClick" Style="{StaticResource WindowControlButtonStyle}" WindowChrome.IsHitTestVisibleInChrome="True" />
</StackPanel>
<TextBlock Text="Socket连接" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="30"/>
</Grid>
</Border>
</Grid>
</Grid>
</Window>

View File

@ -0,0 +1,71 @@
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.Navigation;
using System.Windows.Shapes;
namespace StandardDesign.Views
{
/// <summary>
/// LoginView.xaml 的交互逻辑
/// </summary>
public partial class LoginView : Window
{
public LoginView()
{
InitializeComponent();
}
/// <summary>
/// 主窗口关闭按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button_CloseClick(object sender, RoutedEventArgs e)
{
//if (systemOperationView.buttonConnect.Content.ToString() == "断开连接")
//{
// systemOperationView.AddLog("蓝牙连接未断开!请先断开后,再关闭主窗口!");
// MessageBox.Show("蓝牙连接未断开!请先断开后,再关闭主窗口!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
//}
//else
//{
// this.Close();
//}
this.Close();
}
/// <summary>
/// 主窗口最小化事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button_MinClick(object sender, RoutedEventArgs e)
{
this.WindowState = WindowState.Minimized;
}
/// <summary>
/// 主窗口最大化事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button_MaxClick(object sender, RoutedEventArgs e)
{
//判断是否以及最大化,最大化就还原窗口,否则最大化
if (this.WindowState == WindowState.Maximized)
this.WindowState = WindowState.Normal;
else
this.WindowState = WindowState.Maximized;
}
}
}

View File

@ -0,0 +1,16 @@
<Window x:Class="StandardDesign.Views.MainView"
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:StandardDesign.Views"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
DataContext="{Binding Source={StaticResource locator},Path=MainViewModel}"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800"
Title="MainView">
<Grid>
<TextBlock Text="aaaaa"/>
</Grid>
</Window>

View File

@ -0,0 +1,31 @@
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.Navigation;
using System.Windows.Shapes;
namespace StandardDesign.Views
{
/// <summary>
/// MainView.xaml 的交互逻辑
/// </summary>
public partial class MainView : Window
{
public MainView()
{
if (new LoginView().ShowDialog() != true)
Application.Current.Shutdown();
InitializeComponent();
}
}
}

View File

@ -0,0 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\StandardDesign.Assets\StandardDesign.Assets.csproj" />
<ProjectReference Include="..\StandardDesign.Common\StandardDesign.Common.csproj" />
<ProjectReference Include="..\StandardDesign.Components\StandardDesign.Components.csproj" />
<ProjectReference Include="..\StandardDesign.ViewModels\StandardDesign.ViewModels.csproj" />
</ItemGroup>
</Project>

79
StandardDesign.sln Normal file
View File

@ -0,0 +1,79 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.8.34511.84
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StandardDesign", "StandardDesign\StandardDesign.csproj", "{2BF16630-871C-494F-B55D-098BE74E300F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StandardDesign.Views", "StandardDesign.Views\StandardDesign.Views.csproj", "{C17B8B74-2FEB-45E0-B8F2-3C8DF81C4187}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StandardDesign.Assets", "StandardDesign.Assets\StandardDesign.Assets.csproj", "{D131C4DC-0E04-4374-BF03-FF836630E640}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StandardDesign.Common", "StandardDesign.Common\StandardDesign.Common.csproj", "{15027FF7-AC26-46DA-933B-47F794064A15}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StandardDesign.Components", "StandardDesign.Components\StandardDesign.Components.csproj", "{72A2A13E-25DA-45FE-9987-623CE63AAB98}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StandardDesign.DataAccess", "StandardDesign.DataAccess\StandardDesign.DataAccess.csproj", "{E1C4ABD9-A535-4B3D-B831-A8642ADC116A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StandardDesign.Entities", "StandardDesign.Entities\StandardDesign.Entities.csproj", "{5843FBF8-A25A-423E-996D-9BB51F95D98F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StandardDesign.IDataAccess", "StandardDesign.IDataAccess\StandardDesign.IDataAccess.csproj", "{9AA38DAE-49BB-4BA5-94BA-E6752FEF381B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StandardDesign.Models", "StandardDesign.Models\StandardDesign.Models.csproj", "{C655DE2C-7C52-4B3D-9761-BE62B6B296CC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StandardDesign.ViewModels", "StandardDesign.ViewModels\StandardDesign.ViewModels.csproj", "{76698E8E-CA5E-4196-B385-282EED43E06B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2BF16630-871C-494F-B55D-098BE74E300F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2BF16630-871C-494F-B55D-098BE74E300F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2BF16630-871C-494F-B55D-098BE74E300F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2BF16630-871C-494F-B55D-098BE74E300F}.Release|Any CPU.Build.0 = Release|Any CPU
{C17B8B74-2FEB-45E0-B8F2-3C8DF81C4187}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C17B8B74-2FEB-45E0-B8F2-3C8DF81C4187}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C17B8B74-2FEB-45E0-B8F2-3C8DF81C4187}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C17B8B74-2FEB-45E0-B8F2-3C8DF81C4187}.Release|Any CPU.Build.0 = Release|Any CPU
{D131C4DC-0E04-4374-BF03-FF836630E640}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D131C4DC-0E04-4374-BF03-FF836630E640}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D131C4DC-0E04-4374-BF03-FF836630E640}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D131C4DC-0E04-4374-BF03-FF836630E640}.Release|Any CPU.Build.0 = Release|Any CPU
{15027FF7-AC26-46DA-933B-47F794064A15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{15027FF7-AC26-46DA-933B-47F794064A15}.Debug|Any CPU.Build.0 = Debug|Any CPU
{15027FF7-AC26-46DA-933B-47F794064A15}.Release|Any CPU.ActiveCfg = Release|Any CPU
{15027FF7-AC26-46DA-933B-47F794064A15}.Release|Any CPU.Build.0 = Release|Any CPU
{72A2A13E-25DA-45FE-9987-623CE63AAB98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{72A2A13E-25DA-45FE-9987-623CE63AAB98}.Debug|Any CPU.Build.0 = Debug|Any CPU
{72A2A13E-25DA-45FE-9987-623CE63AAB98}.Release|Any CPU.ActiveCfg = Release|Any CPU
{72A2A13E-25DA-45FE-9987-623CE63AAB98}.Release|Any CPU.Build.0 = Release|Any CPU
{E1C4ABD9-A535-4B3D-B831-A8642ADC116A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E1C4ABD9-A535-4B3D-B831-A8642ADC116A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E1C4ABD9-A535-4B3D-B831-A8642ADC116A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E1C4ABD9-A535-4B3D-B831-A8642ADC116A}.Release|Any CPU.Build.0 = Release|Any CPU
{5843FBF8-A25A-423E-996D-9BB51F95D98F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5843FBF8-A25A-423E-996D-9BB51F95D98F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5843FBF8-A25A-423E-996D-9BB51F95D98F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5843FBF8-A25A-423E-996D-9BB51F95D98F}.Release|Any CPU.Build.0 = Release|Any CPU
{9AA38DAE-49BB-4BA5-94BA-E6752FEF381B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9AA38DAE-49BB-4BA5-94BA-E6752FEF381B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9AA38DAE-49BB-4BA5-94BA-E6752FEF381B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9AA38DAE-49BB-4BA5-94BA-E6752FEF381B}.Release|Any CPU.Build.0 = Release|Any CPU
{C655DE2C-7C52-4B3D-9761-BE62B6B296CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C655DE2C-7C52-4B3D-9761-BE62B6B296CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C655DE2C-7C52-4B3D-9761-BE62B6B296CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C655DE2C-7C52-4B3D-9761-BE62B6B296CC}.Release|Any CPU.Build.0 = Release|Any CPU
{76698E8E-CA5E-4196-B385-282EED43E06B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{76698E8E-CA5E-4196-B385-282EED43E06B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{76698E8E-CA5E-4196-B385-282EED43E06B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{76698E8E-CA5E-4196-B385-282EED43E06B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C5947CF7-42F1-4C64-AB6D-FDFF5057CBDC}
EndGlobalSection
EndGlobal

12
StandardDesign/App.xaml Normal file
View File

@ -0,0 +1,12 @@
<Application x:Class="StandardDesign.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:StandardDesign"
xmlns:v="clr-namespace:StandardDesign.ViewModels;assembly=StandardDesign.ViewModels"
StartupUri="pack://application:,,,/StandardDesign.Views;component/MainView.xaml">
<Application.Resources>
<v:ViewModelLocator x:Key="locator"/>
<FontFamily x:Key="Iconfont">pack://application:,,,/StandardDesign.Assets;component/Fonts/#iconfont</FontFamily>
<FontFamily x:Key="DigitalDisplay">pack://application:,,,/StandardDesign.Assets;component/Fonts/#Digital Display</FontFamily>
</Application.Resources>
</Application>

View File

@ -0,0 +1,14 @@
using System.Configuration;
using System.Data;
using System.Windows;
namespace StandardDesign
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
}
}

View File

@ -0,0 +1,10 @@
using System.Windows;
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page,
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page,
// app, or any theme specific resource dictionaries)
)]

View File

@ -0,0 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UseWPF>true</UseWPF>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\StandardDesign.Assets\StandardDesign.Assets.csproj" />
<ProjectReference Include="..\StandardDesign.ViewModels\StandardDesign.ViewModels.csproj" />
<ProjectReference Include="..\StandardDesign.Views\StandardDesign.Views.csproj" />
</ItemGroup>
</Project>