From b03db7ac510158353cb3a7fe70d0b61c4db87d70 Mon Sep 17 00:00:00 2001 From: Steven Hobs <47906512+stevenhobs@users.noreply.github.com> Date: Thu, 12 Feb 2026 23:35:48 +0800 Subject: [PATCH] basic --- .editorconfig | 393 ++++++++++++++++++++++++++++++++ .gitignore | 482 ++++++++++++++++++++++++++++++++++++++++ App.xaml | 15 ++ App.xaml.cs | 17 ++ Assets/Logo/app.ico | Bin 0 -> 67758 bytes Assets/Logo/app.png | Bin 0 -> 23195 bytes Assets/Logo/app_128.png | Bin 0 -> 5403 bytes Assets/Logo/app_256.png | Bin 0 -> 16538 bytes MainWindow.xaml | 18 ++ MainWindow.xaml.cs | 14 ++ PureWinUI.csproj | 33 +++ PureWinUI.slnx | 8 + README.md | 3 + Usings.cs | 7 + app.manifest | 17 ++ 15 files changed, 1007 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 App.xaml create mode 100644 App.xaml.cs create mode 100644 Assets/Logo/app.ico create mode 100644 Assets/Logo/app.png create mode 100644 Assets/Logo/app_128.png create mode 100644 Assets/Logo/app_256.png create mode 100644 MainWindow.xaml create mode 100644 MainWindow.xaml.cs create mode 100644 PureWinUI.csproj create mode 100644 PureWinUI.slnx create mode 100644 README.md create mode 100644 Usings.cs create mode 100644 app.manifest diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..59efe81 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,393 @@ +root = true + +# All files +[*] +indent_style = space +end_of_line = crlf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +# Xml files +[*.xml] +indent_size = 2 + +# Xml project files +[*.{csproj,fsproj,vbproj,proj,slnx}] +indent_size = 2 + +# Xml config files +[*.{props,targets,config,nuspec}] +indent_size = 2 + +[*.json] +indent_size = 2 + +# C# files +[*.cs] + +#### Core EditorConfig Options #### + +# Indentation and spacing +indent_size = 4 +tab_width = 4 + +# New line preferences +insert_final_newline = false + +#### .NET Coding Conventions #### +[*.{cs,vb}] + +# Organize usings +dotnet_separate_import_directive_groups = true +dotnet_sort_system_directives_first = true +file_header_template = unset + +# this. and Me. preferences +dotnet_style_qualification_for_event = false:silent +dotnet_style_qualification_for_field = false:silent +dotnet_style_qualification_for_method = false:silent +dotnet_style_qualification_for_property = false:silent + +# Language keywords vs BCL types preferences +dotnet_style_predefined_type_for_locals_parameters_members = true:silent +dotnet_style_predefined_type_for_member_access = true:silent + +# Parentheses preferences +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent + +# Modifier preferences +dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent + +# Expression-level preferences +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_namespace_match_folder = true:suggestion +dotnet_style_null_propagation = true:suggestion +dotnet_style_object_initializer = true:suggestion +dotnet_style_operator_placement_when_wrapping = beginning_of_line +dotnet_style_prefer_auto_properties = true:suggestion +dotnet_style_prefer_collection_expression = when_types_loosely_match:suggestion +dotnet_style_prefer_compound_assignment = true:suggestion +dotnet_style_prefer_conditional_expression_over_assignment = true:suggestion +dotnet_style_prefer_conditional_expression_over_return = true:suggestion +dotnet_style_prefer_foreach_explicit_cast_in_source = when_strongly_typed:suggestion +dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion +dotnet_style_prefer_inferred_tuple_names = true:suggestion +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion +dotnet_style_prefer_simplified_boolean_expressions = true:suggestion +dotnet_style_prefer_simplified_interpolation = true:suggestion + +# Field preferences +dotnet_style_readonly_field = true:warning + +# Parameter preferences +dotnet_code_quality_unused_parameters = all:suggestion + +# Suppression preferences +dotnet_remove_unnecessary_suppression_exclusions = none + +#### C# Coding Conventions #### +[*.cs] + +# var preferences +csharp_style_var_elsewhere = false:silent +csharp_style_var_for_built_in_types = false:silent +csharp_style_var_when_type_is_apparent = false:silent + +# Expression-bodied members +csharp_style_expression_bodied_accessors = true:silent +csharp_style_expression_bodied_constructors = false:silent +csharp_style_expression_bodied_indexers = true:silent +csharp_style_expression_bodied_lambdas = true:suggestion +csharp_style_expression_bodied_local_functions = false:silent +csharp_style_expression_bodied_methods = false:silent +csharp_style_expression_bodied_operators = false:silent +csharp_style_expression_bodied_properties = true:silent + +# Pattern matching preferences +csharp_style_pattern_matching_over_as_with_null_check = true:suggestion +csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion +csharp_style_prefer_extended_property_pattern = true:suggestion +csharp_style_prefer_not_pattern = true:suggestion +csharp_style_prefer_pattern_matching = true:silent +csharp_style_prefer_switch_expression = true:suggestion + +# Null-checking preferences +csharp_style_conditional_delegate_call = true:suggestion + +# Modifier preferences +csharp_prefer_static_anonymous_function = true:suggestion +csharp_prefer_static_local_function = true:warning +csharp_preferred_modifier_order = public,private,protected,internal,file,const,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async:suggestion +csharp_style_prefer_readonly_struct = true:suggestion +csharp_style_prefer_readonly_struct_member = true:suggestion + +# Code-block preferences +csharp_prefer_braces = true:silent +csharp_prefer_simple_using_statement = true:suggestion +csharp_style_namespace_declarations = file_scoped:suggestion +csharp_style_prefer_method_group_conversion = true:silent +csharp_style_prefer_primary_constructors = true:suggestion +csharp_style_prefer_top_level_statements = true:silent + +# Expression-level preferences +csharp_prefer_simple_default_expression = true:suggestion +csharp_style_deconstructed_variable_declaration = true:suggestion +csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion +csharp_style_inlined_variable_declaration = true:suggestion +csharp_style_prefer_index_operator = true:suggestion +csharp_style_prefer_local_over_anonymous_function = true:suggestion +csharp_style_prefer_null_check_over_type_check = true:suggestion +csharp_style_prefer_range_operator = true:suggestion +csharp_style_prefer_tuple_swap = true:suggestion +csharp_style_prefer_utf8_string_literals = true:suggestion +csharp_style_throw_expression = true:suggestion +csharp_style_unused_value_assignment_preference = discard_variable:suggestion +csharp_style_unused_value_expression_statement_preference = discard_variable:silent + +# 'using' directive preferences +csharp_using_directive_placement = outside_namespace:silent + +#### C# Formatting Rules #### + +# New line preferences +csharp_new_line_before_catch = true +csharp_new_line_before_else = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_anonymous_types = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_open_brace = all +csharp_new_line_between_query_expression_clauses = true + +# Indentation preferences +csharp_indent_block_contents = true +csharp_indent_braces = false +csharp_indent_case_contents = true +csharp_indent_case_contents_when_block = true +csharp_indent_labels = one_less_than_current +csharp_indent_switch_labels = true + +# Space preferences +csharp_space_after_cast = false +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_after_comma = true +csharp_space_after_dot = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_after_semicolon_in_for_statement = true +csharp_space_around_binary_operators = before_and_after +csharp_space_around_declaration_statements = false +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_before_comma = false +csharp_space_before_dot = false +csharp_space_before_open_square_brackets = false +csharp_space_before_semicolon_in_for_statement = false +csharp_space_between_empty_square_brackets = false +csharp_space_between_method_call_empty_parameter_list_parentheses = false +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false +csharp_space_between_method_declaration_name_and_open_parenthesis = false +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_parentheses = false +csharp_space_between_square_brackets = false + +# Wrapping preferences +csharp_preserve_single_line_blocks = true +csharp_preserve_single_line_statements = true + +#### Naming styles #### +[*.{cs,vb}] + +# Naming rules + +dotnet_naming_rule.types_and_namespaces_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.types_and_namespaces_should_be_pascalcase.symbols = types_and_namespaces +dotnet_naming_rule.types_and_namespaces_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.interfaces_should_be_ipascalcase.severity = suggestion +dotnet_naming_rule.interfaces_should_be_ipascalcase.symbols = interfaces +dotnet_naming_rule.interfaces_should_be_ipascalcase.style = ipascalcase + +dotnet_naming_rule.type_parameters_should_be_tpascalcase.severity = suggestion +dotnet_naming_rule.type_parameters_should_be_tpascalcase.symbols = type_parameters +dotnet_naming_rule.type_parameters_should_be_tpascalcase.style = tpascalcase + +dotnet_naming_rule.methods_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.methods_should_be_pascalcase.symbols = methods +dotnet_naming_rule.methods_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.properties_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.properties_should_be_pascalcase.symbols = properties +dotnet_naming_rule.properties_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.events_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.events_should_be_pascalcase.symbols = events +dotnet_naming_rule.events_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.local_variables_should_be_camelcase.severity = suggestion +dotnet_naming_rule.local_variables_should_be_camelcase.symbols = local_variables +dotnet_naming_rule.local_variables_should_be_camelcase.style = camelcase + +dotnet_naming_rule.local_constants_should_be_camelcase.severity = suggestion +dotnet_naming_rule.local_constants_should_be_camelcase.symbols = local_constants +dotnet_naming_rule.local_constants_should_be_camelcase.style = camelcase + +dotnet_naming_rule.parameters_should_be_camelcase.severity = suggestion +dotnet_naming_rule.parameters_should_be_camelcase.symbols = parameters +dotnet_naming_rule.parameters_should_be_camelcase.style = camelcase + +dotnet_naming_rule.public_fields_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.public_fields_should_be_pascalcase.symbols = public_fields +dotnet_naming_rule.public_fields_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.private_fields_should_be__camelcase.severity = suggestion +dotnet_naming_rule.private_fields_should_be__camelcase.symbols = private_fields +dotnet_naming_rule.private_fields_should_be__camelcase.style = _camelcase + +dotnet_naming_rule.private_static_fields_should_be_s_camelcase.severity = suggestion +dotnet_naming_rule.private_static_fields_should_be_s_camelcase.symbols = private_static_fields +dotnet_naming_rule.private_static_fields_should_be_s_camelcase.style = s_camelcase + +dotnet_naming_rule.public_constant_fields_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.public_constant_fields_should_be_pascalcase.symbols = public_constant_fields +dotnet_naming_rule.public_constant_fields_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.private_constant_fields_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.private_constant_fields_should_be_pascalcase.symbols = private_constant_fields +dotnet_naming_rule.private_constant_fields_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.public_static_readonly_fields_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.public_static_readonly_fields_should_be_pascalcase.symbols = public_static_readonly_fields +dotnet_naming_rule.public_static_readonly_fields_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.private_static_readonly_fields_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.private_static_readonly_fields_should_be_pascalcase.symbols = private_static_readonly_fields +dotnet_naming_rule.private_static_readonly_fields_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.enums_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.enums_should_be_pascalcase.symbols = enums +dotnet_naming_rule.enums_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.local_functions_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.local_functions_should_be_pascalcase.symbols = local_functions +dotnet_naming_rule.local_functions_should_be_pascalcase.style = pascalcase + +dotnet_naming_rule.non_field_members_should_be_pascalcase.severity = suggestion +dotnet_naming_rule.non_field_members_should_be_pascalcase.symbols = non_field_members +dotnet_naming_rule.non_field_members_should_be_pascalcase.style = pascalcase + +# Symbol specifications + +dotnet_naming_symbols.interfaces.applicable_kinds = interface +dotnet_naming_symbols.interfaces.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.interfaces.required_modifiers = + +dotnet_naming_symbols.enums.applicable_kinds = enum +dotnet_naming_symbols.enums.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.enums.required_modifiers = + +dotnet_naming_symbols.events.applicable_kinds = event +dotnet_naming_symbols.events.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.events.required_modifiers = + +dotnet_naming_symbols.methods.applicable_kinds = method +dotnet_naming_symbols.methods.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.methods.required_modifiers = + +dotnet_naming_symbols.properties.applicable_kinds = property +dotnet_naming_symbols.properties.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.properties.required_modifiers = + +dotnet_naming_symbols.public_fields.applicable_kinds = field +dotnet_naming_symbols.public_fields.applicable_accessibilities = public, internal +dotnet_naming_symbols.public_fields.required_modifiers = + +dotnet_naming_symbols.private_fields.applicable_kinds = field +dotnet_naming_symbols.private_fields.applicable_accessibilities = private, protected, protected_internal, private_protected +dotnet_naming_symbols.private_fields.required_modifiers = + +dotnet_naming_symbols.private_static_fields.applicable_kinds = field +dotnet_naming_symbols.private_static_fields.applicable_accessibilities = private, protected, protected_internal, private_protected +dotnet_naming_symbols.private_static_fields.required_modifiers = static + +dotnet_naming_symbols.types_and_namespaces.applicable_kinds = namespace, class, struct, interface, enum +dotnet_naming_symbols.types_and_namespaces.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.types_and_namespaces.required_modifiers = + +dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method +dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.non_field_members.required_modifiers = + +dotnet_naming_symbols.type_parameters.applicable_kinds = namespace +dotnet_naming_symbols.type_parameters.applicable_accessibilities = * +dotnet_naming_symbols.type_parameters.required_modifiers = + +dotnet_naming_symbols.private_constant_fields.applicable_kinds = field +dotnet_naming_symbols.private_constant_fields.applicable_accessibilities = private, protected, protected_internal, private_protected +dotnet_naming_symbols.private_constant_fields.required_modifiers = const + +dotnet_naming_symbols.local_variables.applicable_kinds = local +dotnet_naming_symbols.local_variables.applicable_accessibilities = local +dotnet_naming_symbols.local_variables.required_modifiers = + +dotnet_naming_symbols.local_constants.applicable_kinds = local +dotnet_naming_symbols.local_constants.applicable_accessibilities = local +dotnet_naming_symbols.local_constants.required_modifiers = const + +dotnet_naming_symbols.parameters.applicable_kinds = parameter +dotnet_naming_symbols.parameters.applicable_accessibilities = * +dotnet_naming_symbols.parameters.required_modifiers = + +dotnet_naming_symbols.public_constant_fields.applicable_kinds = field +dotnet_naming_symbols.public_constant_fields.applicable_accessibilities = public, internal +dotnet_naming_symbols.public_constant_fields.required_modifiers = const + +dotnet_naming_symbols.public_static_readonly_fields.applicable_kinds = field +dotnet_naming_symbols.public_static_readonly_fields.applicable_accessibilities = public, internal +dotnet_naming_symbols.public_static_readonly_fields.required_modifiers = readonly, static + +dotnet_naming_symbols.private_static_readonly_fields.applicable_kinds = field +dotnet_naming_symbols.private_static_readonly_fields.applicable_accessibilities = private, protected, protected_internal, private_protected +dotnet_naming_symbols.private_static_readonly_fields.required_modifiers = readonly, static + +dotnet_naming_symbols.local_functions.applicable_kinds = local_function +dotnet_naming_symbols.local_functions.applicable_accessibilities = * +dotnet_naming_symbols.local_functions.required_modifiers = + +# Naming styles + +dotnet_naming_style.pascalcase.required_prefix = +dotnet_naming_style.pascalcase.required_suffix = +dotnet_naming_style.pascalcase.word_separator = +dotnet_naming_style.pascalcase.capitalization = pascal_case + +dotnet_naming_style.ipascalcase.required_prefix = I +dotnet_naming_style.ipascalcase.required_suffix = +dotnet_naming_style.ipascalcase.word_separator = +dotnet_naming_style.ipascalcase.capitalization = pascal_case + +dotnet_naming_style.tpascalcase.required_prefix = T +dotnet_naming_style.tpascalcase.required_suffix = +dotnet_naming_style.tpascalcase.word_separator = +dotnet_naming_style.tpascalcase.capitalization = pascal_case + +dotnet_naming_style._camelcase.required_prefix = _ +dotnet_naming_style._camelcase.required_suffix = +dotnet_naming_style._camelcase.word_separator = +dotnet_naming_style._camelcase.capitalization = camel_case + +dotnet_naming_style.camelcase.required_prefix = +dotnet_naming_style.camelcase.required_suffix = +dotnet_naming_style.camelcase.word_separator = +dotnet_naming_style.camelcase.capitalization = camel_case + +dotnet_naming_style.s_camelcase.required_prefix = s_ +dotnet_naming_style.s_camelcase.required_suffix = +dotnet_naming_style.s_camelcase.word_separator = +dotnet_naming_style.s_camelcase.capitalization = camel_case + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..45baf01 --- /dev/null +++ b/.gitignore @@ -0,0 +1,482 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from `dotnet new gitignore` + +# dotenv files +.env + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET +project.lock.json +project.fragment.lock.json +artifacts/ + +# Tye +.tye/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +# but not Directory.Build.rsp, as it configures directory-level build defaults +!Directory.Build.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml +.idea/ + +## +## Visual studio for Mac +## + + +# globs +Makefile.in +*.userprefs +*.usertasks +config.make +config.status +aclocal.m4 +install-sh +autom4te.cache/ +*.tar.gz +tarballs/ +test-results/ + +# content below from: https://github.com/github/gitignore/blob/main/Global/macOS.gitignore +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# content below from: https://github.com/github/gitignore/blob/main/Global/Windows.gitignore +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# Vim temporary swap files +*.swp diff --git a/App.xaml b/App.xaml new file mode 100644 index 0000000..160d15d --- /dev/null +++ b/App.xaml @@ -0,0 +1,15 @@ + + + + + + + + + + + + diff --git a/App.xaml.cs b/App.xaml.cs new file mode 100644 index 0000000..422584c --- /dev/null +++ b/App.xaml.cs @@ -0,0 +1,17 @@ +namespace MyApp; + +public partial class App +{ + private Window? window; + + public App() + { + this.InitializeComponent(); + } + + protected override void OnLaunched(LaunchActivatedEventArgs args) + { + window = new MainWindow(); + window.Activate(); + } +} diff --git a/Assets/Logo/app.ico b/Assets/Logo/app.ico new file mode 100644 index 0000000000000000000000000000000000000000..2657dca4ada858e1605eaf4a4f9d66974fb927fc GIT binary patch literal 67758 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 literal 0 HcmV?d00001 diff --git a/Assets/Logo/app.png b/Assets/Logo/app.png new file mode 100644 index 0000000000000000000000000000000000000000..b9cd5b982dd435b874ab6bdf5a947cc45fb88a4d GIT binary patch literal 23195 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 o@v$^nHC~qi)c

P9Bqeb+dVm=Hyf(9%urZsyZsg*Q}oY4-Z#_asU7T literal 0 HcmV?d00001 diff --git a/Assets/Logo/app_256.png b/Assets/Logo/app_256.png new file mode 100644 index 0000000000000000000000000000000000000000..7c0c3eb5ec49fa740cc4b1413175a742e8f33090 GIT binary patch literal 16538 zcmcJ12UJsOxAqAj!9r07QL0$L3Nn-+Ehs8BKm}Afii#BJCDa6IDot#Z&=druDu{Fv zkRn0=r9@f)fzSj3AwVD`|4Go%Z)SA9x%d9AHEV=5=RNP<``PW;`^?>Q+M3+!1lIuo zzsb>BIdAy%T2msWjPaQj=hcKNi_j!H&lD_0p_Xr`QySqPrMo&!Es0H%)(YxmpP$$P0Z9AqdP8K9EZe@RObFRE_Ba(*Zn(_ zfDz|x`<-Vp<`*8P+|xUG^ug(ILODUqeX@9jmR;PWW;va&(~HjP6D#eY;re2ob6n?* zU8ht>df0#azyEW9pMP_NzA?FPT=j}Tf?@VxT-Z9DIKWE-JI3#D6>tm6Fk}bX+)TNF zE6&0Une^djv|VlDH8mb>aj#}S6`X@?40-3jt)mr-i`se$(e_l$5E8-B@3$|Y)TST( z@LaE`#D25fj8c1_38RHx9bM6fh_j-=w6~?A)yU2PC?Dx42TgsAH*BBEn)F6rju8nh zMXTs1Z40UGudgN#Z1pFqOF{;hGSKJkj2&!2a^;%Q{}y3+t^U{+x5(< zQkH17CssNO3ZQB$W{im!3wy>a*dk)s`|-ZJRdQnkkUagG=LS@g46lcsaMJaP>v1?3 zL$Jja@e6U+ZH-IYjdqMOLwsPp@ZRPGdEvK;!4o^4&vu>4uiGG`P7wgq*v`^NC+!ox zU+JrP&ZMgWITdBTC-es_Cs6D6>os3R^3-dIKyjZ44lm3Q6?+Zd%9QnF4QzcsW>rF~ z3Q1+Y=Uf~K{7vm)V}ZSo@!I2?^V*YBRPS3*prqv_V=23p>x(u;3(JPTuK!Z?qE*g zouAHCFszxcGseAo?AUw#%B{g6(zsGTPG4Wue?hYdArn+3zK#JzQmyx=jJq9&8CG)f7w56JM`uONXp_81g3*DwqA~ree@% z=5G!)4V0XGQRa3bG1@@ni|0n4r#w&zeTtZl@~z>n!m{Uvh4&@{Z}|YmD{q#9H3AFu z(-RshJnr|jIktpOaz`x%3TW-0x08rq+E3%Ks@6{|>T~smD+!IkadQM zlP?zgygbN@S}-|3or!nkKUaR+hrENO6taKQzqxk_+D!Qv1BqGE8LbdiCVka zNCaP2K<^B*STwZq&HSm!8nbwu72tp#VvU3lV}fFD$T&Pn;Q6G`4CE{gJ9LG|516P^ zPR~=0IO*0Mk#!TB+Y9@UC-}bAg~}9N0W_H600_KL=OU>K`*P#kByU^{76roxI*QNN zy>5JbBDd(-(i10p1KSYxexE3OpDsHFs;6UVCbnv#g(J#%> zvtWFfTK3@9DO;)-gy7||qALVR+>7gbfGhe1Y!1AnLXt9?UW|vqy;h!2zgGcz)JzfAZKrH1?8_@XwdD@wX9|LEs12X(gIj;_d+t_@T{rHfrw;J}pz zwN}D|Kod8EXqAB>Qq#J2p-*^$RrmC1NmJ=>u-@}a?A2QPhM>lKEhpn?G$X==ncyuE z%5Qog4l9%^!vrK3{#k};O-043OHTQ#4MWT>YIwv-VMx!cYEHbB`At&AMlr~d2Y>wZ zaKXc+>c;VxDMb4_`@H+#J#7zp(`9tGuq^_JGT9=rK-iMA7dLJ5(-0w>`St-C=}gN{ zi+|SrPbI}%DeOk>TSS1{PTDUDyzfFw|c91f2H*W%xG+;n@^=@ zRLJ1cPOLsgSUZ#57bAx}qcHdjL-oVV(cMZn?u}*FjT-KZDrM77pBUGGFE}s6S@Sp4 zII02{-2*bu>FZcj@IF8*@x;DbPSWwfMzx>&WuzPuI=8a3_N+`fWvhve%W%#)RiEpV z)eD!~og903P-dlNzWVz5@EY&0en>#f|BEo}0!wmh{H@g};zL1gR`Gs4xW|VYUPkD% zC-(+tl~D^cYoGbk*h{E!xp`d3s#n?3{tH!p;Z}4$Yp;3&FX%kNGhif?8KE+P&s7@J zo;2kQZ;(Yj7QFO?SokZ{wKG@j& zFYct#%o(?3RnV3meQboW7bRTik&Vj%$~IQk;Ul>bM~<%sN0?gv7@EOK=%#iZ4jYE& zkKWrzQtrmIUqP@7D)a0ax`~Ux<-$s7c@0%<(pd&_Pdowd z$sv+p(vlQ$bg!POBPXN+{tW&sErq=u0nWvyoh8nVuD6lB{f3Dg?jY z`cH5U?Lcv!0fR12p$cL;+&OBdkp0Q*hW?7~D$E{S-{dduVTTR+y`*ESs=L1GN_A@o zgI6mo@VPJmLF{z?T7&#o7dY?~vbXL68oo5Hbl^+#fY#elIGeGL$4V$4sbKbCxyP>} zF{fNf$K}&g^P4WZeL>W^PUp}QcCD`&Z3fs#(r3sc-|DMB7i-K&EZ8z?XtB3=m<`Y` zaI~e_3kt3P>8SNF=%7FRO6#9f!RiIQRrAxb`-2J%*lc zNUbp@4h_9zd_J*kd26_yenFL5*#F?T@KC<0rFt7>?b7j#@$RnjJ)!d(%<-J2=VFnD zp?_@)Ug&^T!5M3H(EXkdJz4K~jRQ!}X!nZ9VOUI>?mD3iNXR!?Xzwh3p&I^QIr9Z} zK@*z;y9kBC$dxch+zEYs9i-0fe43oi8dR;{ni!zVYg2k-b46M zGR!z@SImT!zpj|eN|^L~+cO!aa^nd%#=Zj}Nh=Pn^XszgKA~Ts(Dhr9^VNw&I|e;Q6z@Hh4TM}olAVB8F#i$0>G^ccCy(lD&c>nvxQmBwzCJgl0|_3GkM`> z4)B2SM?Nkr`kxD#pF_md_xP?JHV`BCvuysk$ojcSy{P<=4(n?bq1Z>bHlgBQ_%Lq}r=0-NcIndv#vCbhi(z54d{H2}BFAKKpzuQaIEJ7*f!+ANoazm$PXs_wpk* zq5F?Z$M$zN=a3qw(@9y=StOsnO9M2rRBgCydi@1>JscR zPG%)QX3#u>pB}z+tjeQg&6U^e+Y5hHZ+^^@Nu-Ca8;Ki4ngrAfC?Hi9{iYMm>v)=O zx#knKnenX>C;y{!Gc9K-*a@>S{w0=3jTlVk*~40wW1VFM8HF4}Co~ z$wKM?Gtsgl9Eg0(j!jaV?IX8RfR=wU&Fg$+N zgtXl#Kqui}kN&)b!EJVS<^NPDtqPn~J57kzUlZq;8mnw+7xs}BIsa}Wm=;8hK$z(Svhue(Ig!^)WU1|qHQi`b6&as5MfzHP#_?-4g*}T*Lp%i z?0(L3^hJB=*fW-4YMW-uI4A1P?sguQ0`(RATgDsOGf>v;{ZNTs^pRio+tu#N+1Zg& zGMn;`15@RF(Xzvw2puDT^pUzDK@U~g5oYQ21M;p9&X~_^9Raw;jtcxjg=#WFCgcYA z!-xmY2XAjBql01m`NZ!B7pPwPi^vHgp>rJODeR~%m|qx}a`%O+*TO{wvE3tv95O@= zO}}M~s@Hd2p6_-Z{+lbSgt`H8mtB6v@U)e*>-V>{eu|MdN{P5h7;x= zZe^_7VG(5dmn)0%(uzZ>(xKRALcbvJBqkagkdNYQHlAyI8*JI|_0XKwBBc&l`9Hgf zPz03TbNnh;XI)(1wtnl!pQBVwMm4^SrdeOS1yYj*lJtGHF~*=C^l&pynoUJFF6+pi zTrE_;BQ95|55?C=0#G9y8c3R5Y3B_47#df#X^wDi@CLSRM1<}`R z_cqB-i$Hn@!Z22A1j=^Z@&y#fj`d$3(IMF*ukh<2s&1=Y+Ai?*x%{yM2znZDNDPEW-Dn-3R~r_R^A) zPTMcCqeT$j8W;mnazjUQbN^$w6~pPAKt~5E#4P`|r0QLsJ@%^K94w>Tp()@PvCYp` zMO4vQc4kYMBM-1<#e6hyqQ>>F)S-#{d?!|CWsakic#~f1(_z40K{lA@Rw56%x!%N= zx=#}ukeyCScGx6SxiFR2MZeq1wkey}n-atyFsTDl?woY92Nqz|y*9J>I4z z%*J*(^{@|}w14xfCv0HqU%3@0KD41#4ZAtiHpS5qJKaj4H z2JQj<9HuV^*6z}oc1(vSB*yp)tb40nn(B9hkuo*ZU5LR7B8y?X!I$Yc< zXjQ&_a%^T8Q!A6bCEjR|bcN8`(cgolcM9^VUMn^@l$}GY^K)*CU_T+oEzOCCnqUkz zi|1eRW%`=)%+Rwh8)dp6N$c?;AJMI$rQbUIZ&aE|VS3-Z*W#$Ajmjsv@Q2;mksa$T zam#IKjMVmL`0Vp|>=p7DT;9zIz6g+@$f7GEBGDHw`S;pjC!|v^LCx{+`@xRyQpK?+ zo%`X;&{B+WI`8Hm>B|XP@Me<0b6DD6``r?|Mk0oqDrmNJ;YK|8pUb9l7!!NcnA`Q}vAN7Xr_3Kc`QT0Lc*>nLTlt=PNRU3v@cMnEd4SzFM=8YfgC}|J_tlR14-hWg zwDMIHTW*mcLzYA}Mg)rtt$Uq%Tqnw6WYfRg$Nl(R1oXlt9_b*fAY<*r>z$a6E(7AH|5f zeX!k7Y2oSH6({u5)?Hb*8ej4FwTfLD2yQkTcm!l$D!O+6(L~PvkFt$tK3z+&kot{D zbdcxR=GY1^kaZ-mixSy9`AURLTKR1#PrDW)H@EEFyw=3j2xZ zh&~1l=g?O%$7?C4*8I6gGaQ%z1FDBJjH!U?(Aqk@x}Ik}NjYJD(_GujCzbwP`S9>LXXi+OZ%z~`Gi2?@ey2b$ILsg`DU^eq#>yC*x!OEW0-A}?0YzRV!Q z=lDnoHZX^|(bQ}k_n@P@;_}}d%O54`+^KmwqOGH;UOpL%`9ScHB%#H!hEEvmGF|$( z)^t{5%q-Ip&pi7u_1dRG+5OTZ9W6N;bKMLBXU%=$9wuuAkOQz<28~x_4Pl1h+T*sI zdJ_K!<^qU1MQfgo*fn!i_$3egu&+fx`9s-#Ct!7lIi!lrZ%35{sKwXWgrDf6e43`) zl;hPVm~hNWS(niU_vQe=#3W{R^kt3Q(N?l zHMMu!VVBoOT#`pvP>6G|MW^Pr8K zDi|S0WSN78BLsSP8rVZld3EV9p6*}e1RfK0c6BNVhR!LVz^Oy3VR_PI4-H4^_e1g0 zYCrS(@$vetZz{xWmD2zR`~nWM^=KqL!=4NU+LCQClB72!^$ zZt+WqsC5~ACZ>h!Gd~{;;O~M}Bv>e?6hpxJlB7oO##Sex!aB=nu&1YAQ87md~}vVjxbrUiDLzM;QZe2?vi9xI%8ejASeS9;R=rfQ+}YInKnhX0<1|@%3ybleBaX_?oZxByV>!uO zh=lb+O{5Bg%3Z%H-XnD-+c$@bj$%~fc^*a=EAjL`CXAQOSBHXgoQ!E(iU7j$w!ndB za*WR)QGaL}#vXG;hqaB#8dkl5Z1jQJ@fJ<3jEQ4iOB{|VyS*MXChuJ6Mc$2!J~-Nn zj65xYcvT))BJ=}|0Jwi|8GZL}>;&;x?F)%MW`($|5yfBR4ti2Y29lo=_dJC;^Q{nn1TZYQ$-}*9b!I zV~`rRSoh)@kf6rqIs_{z5OsB|B^*B^|B*Im@rWHb2}8jy*k2VhNeSpVjqCe_ zlZ7nsB_Tq)c{ymgxwiLGhZUq59!k6!wZvh#sn=Ccn=tT3?*?ZArP~*4Z-oOf<{O_= zqd?T5_V#VK7L>1$l>gMQlphU`Et-6TvdK->Kz)`G_2ycfoUjQvqzapBKqfS?w;aml4%V$Q6Gf#CE!x#@)O@P46B|j zgc|#3h1vUrNIq9|;w2Gm6dV>EMjOl1JgCjB9uD)fO&WXaSI1zIcXzi26bXcTlR(CMD2=cIx3>)+#qA+ zvF3=`w3heUfeXnNP3~5WK@8FvAv_)%I2D9zIeS)P{d28G=+pv-`Asun@?xduSDu|$j`!vUU#yEZ+bo{L_>#Xbj$VXo zmi8u3q5NG&>stoFnjku0(HdN3gHCfT&R(+io@tQh z5k7!JmVvEQ(o@)Z=|?b?w2(*lyUVFZ4$pZK>&vB=dy(t3?ZT8P4M^@X?~TUb#Ffwm zj=?$+Dh@;uiOb}U@=+( zI#Tb!;SHRBPz2D3JuU^#aky_;GUgK>c5Ad?fVtV@%(fgYzwvk1#jhj|*!Y|#yI+0H zu8wbB{}GLwXzTh&vuXs)n@`<4$I~<^&LnF}r600h)t7bm{)@K}Om-CHnjSG{d=gBK zzkkgbj_7KA%Ze^{BiYF0sU@Io#~VhJqD;Zv z$0Tyv2I`pn9!ndD-(bkP;0!M?c&IZ@9g=lX(37r^LkhMw_<&HV6FueZ)&B_u3*s1t zhA)aUe@-QzWV*oGvZbveQ%69`uBGlV!PfMSsW($Psf8saQUPZ0%U(q{6Lus8Hm1Tf znj}VIlN2~bSY?ku`H=QtJUBLrBLiP3M#64%8Q(L3+hj<{1iHX^cb@ACbkh&b3ezMty*==5qGe=!kR>xM~2py(| zD!~i$DGFr>n8m`w4(m)=Okfj{Z)z>!0t$>zTs1i`R5uTY_pHwNM_RR{tgNft55flS zAV0~wvRH#GbW~-N8v1(krpHE72SLhM)oWi?7QhSN(Box~T?%T)z5wNB4H>`7J^1Pq zjej2LQc6<=>@_H#&ydq(M&2J3Xi#ZMKU|qDTzD@Io)XS^S6bY7pWh|1D8}ldpjJGnHkiU!4lVT@Um{U~>HQSHYNL1BY?{oW6$KKl`9ktumm_ zYuYUFZu~yszM+kAeyxi_xg0V@&C)^-=uB118yR<{MMbnHjl|(cL?IMWa71? znd8c~0%Z;HO-%+y&-UUH1LxXqgEa|iT_17HjKmn!K?03PT6Kz6`F6st6`(0a!&AdL+Yu+&+BpZ#eceu)l*<0LV<4_zckD-6 zJXdt&-UtYME3}D{phwvh@sEvrGJY;|#{69RL^CN8J!G zY+`o>bPw1*@C7JU`M(mQ@2*>KW}!jzRi;kCPiIE7KJq4+A})e_dYj>3tbA(z*mLU6 z$@||M(dSg+qXLpVE_Eb{TEZ;Q0fFtVrh4?%7SfJhUQJF4uHqG9}di121ZS zpF;8O00-H=`<{bgHYeEy;|cGd)Ls5zor|^m^Fz@CI!9#twRv$Mkv23vP4_w;cKZV_ z_+ejq&hM$lH!WDG;Do*1^G`>d?F{C}&NW`X{2t;^Cz8n!2PR@Qpx zk6SC>6AG9}CG%qUF7vU`?Q{wzc<+j?Idd3bev!3LFKQwT79#o)1@77RZ1~Hv4!AP$ zAE=VOB?g?8Xdhl)xYXpXEG-Hi10>~0;)9fWI8DD@rA0>I$)(QK(Yf(KgSq9*+~F|3{5MMrt3wxNjs_9dIxqf=jowO6B)!6Wj?}aut11ER*q03-Y+p(-^pLfe zfUE!hHwlKRKda@WbAe$<@(UgP*|lBQ&0m0CRW>N{P{_s{X+dUBu@@y|{WWC2vre7# zKdN3tAH-mmH#bIvJr@H2RM=w}WI)sxHHUkP*8g+LS=G-uE{LYW#fb8|)a(64!oVdH z{oZZoR&3n;~%< zWf+anwLivm3-h}QPUTCN`nIy!L1;gFPs(DqXWj(mtkmW@3Q+X<-ndaZ%vV@k<=xLj z+0GFFm4xIjR@28#=MOTU0#NQ4FMQPaIg@J@r{39KvvH6eh4vPK`I|`*>VAdDNxrI- z45_70)00b^yq<&&`T_vfE7!1Gl#2m77i)I&KeF$t4iH=q&6XDFCdrIf5e5#%$hGf^ zhPdkpcQZ$*>)`$gLqmcSjPa{tV-TbV+@l1VI{x1^Kwrzcbb9NIma2{W-E_x|Z# zGax7BJGc{b8A=mK%7~3u5CRL7;jh&I^G+JK`2ZRmjF6M?Jj+b;Ga$G~U1vIwZ2CS2 z&&A(VD3e3JXL7}?D0H?PdK3_i(?d+wEle-nn!mN%mJ0fesk_xmFJ)=TSFgQTeMx;5 zC$2F9vAo5cjYEoWXi0wGDPYY>zR7l>XVbp2&$TP171;3Xpo0s_0PiJ?&FnBGnYRqU z+Rw7r!-6-&L*u{!0e1p)C{{lH`&P);zGoHbC(o_8nM``q-ER8YMp*)a0w#I%)1ZFz z_2X+{!4-~FzpMXvnct3LBQv@XWNtB~D|6E1%e&sx$O2&#gwmz%PX(TKB2|Q2XIb?R)mViV9p8#g35b zhktu~J3edd`;y1E29t#mjgZ`nt}Cg7Gg01K0&gvBP#-MGboc(e*D_a4?5U>+TSXJ^ zBln%#WCc}t-^tr3iAP?yQ~8hPj1|@(z)?liIWrn*AilY`2^TR*2M;n^$@IjRYvRpJ zo_flnrb%|Yz=Z-Y6u3(f<_*=Q5K2oxrxB>rqm!j9>ye`6nB(_7-tAPFb?%Rox>OY zELJ7-<&1iIMyUo@--d_dZb>ElV72Qx2$kd|J-Yq>;m?N|2K%Ku@^=mk_LYJEKLOy> MaqVL{N6l~lKY}9_;{X5v literal 0 HcmV?d00001 diff --git a/MainWindow.xaml b/MainWindow.xaml new file mode 100644 index 0000000..406e920 --- /dev/null +++ b/MainWindow.xaml @@ -0,0 +1,18 @@ + + + + + + + Pure WinUI3 + None + + diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs new file mode 100644 index 0000000..4badf3a --- /dev/null +++ b/MainWindow.xaml.cs @@ -0,0 +1,14 @@ +namespace MyApp; + +using WinUIEx; +public sealed partial class MainWindow : WindowEx +{ + public MainWindow() + { + this.InitializeComponent(); + this.SetIcon("Assets/Logo/app.ico"); + Title = "Pure"; + Width = 600; + Height = 480; + } +} \ No newline at end of file diff --git a/PureWinUI.csproj b/PureWinUI.csproj new file mode 100644 index 0000000..ee4a0ea --- /dev/null +++ b/PureWinUI.csproj @@ -0,0 +1,33 @@ + + + WinExe + net10.0-windows10.0.26100.0 + 10.0.19041.0 + x64 + + true + None + false + false + + PureWinUI + app.manifest + Assets\Logo\app.ico + zh-CN + + MyApp + enable + true + false + false + False + + + + + + + + + + \ No newline at end of file diff --git a/PureWinUI.slnx b/PureWinUI.slnx new file mode 100644 index 0000000..9454153 --- /dev/null +++ b/PureWinUI.slnx @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..63c3b4c --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# PureWinUI + +轻量化的WinUI3模板 \ No newline at end of file diff --git a/Usings.cs b/Usings.cs new file mode 100644 index 0000000..674ca63 --- /dev/null +++ b/Usings.cs @@ -0,0 +1,7 @@ +global using System; +global using System.Collections.Generic; +global using System.Threading.Tasks; + +global using Microsoft.UI.Xaml; +global using Microsoft.UI.Xaml.Controls; +namespace MyApp; \ No newline at end of file diff --git a/app.manifest b/app.manifest new file mode 100644 index 0000000..60770d7 --- /dev/null +++ b/app.manifest @@ -0,0 +1,17 @@ + + + + + + + + + + + + PerMonitorV2 + + + \ No newline at end of file