Merge branch 'main' into focusBehavior

This commit is contained in:
Rosario Pulella 2021-07-21 09:59:20 -04:00 коммит произвёл GitHub
Родитель d01bbd7bfa 747497aafb
Коммит ffed1a6799
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
126 изменённых файлов: 2010 добавлений и 977 удалений

Просмотреть файл

@ -1,8 +1,8 @@
# Remove the line below if you want to inherit .editorconfig settings from higher directories
root = true
# C# files
[*.cs]
# All files
[*]
#### Core EditorConfig Options ####
@ -10,14 +10,40 @@ root = true
charset = utf-8
# Indentation and spacing
tab_width = 4
indent_size = 4
indent_style = space
tab_width = 4
# New line preferences
end_of_line = crlf
end_of_line = unset
insert_final_newline = false
#### Build files ####
# Solution files
[*.{sln,slnx}]
tab_width = 4
indent_size = 4
indent_style = tab
# Configuration files
[*.{json,xml,yml,config,runsettings}]
indent_size = 2
# MSBuild files
[*.{slnf,props,targets,projitems,csproj,shproj}]
indent_size = 2
#### Source files ####
# Markdown files
[*.md]
indent_size = 2
insert_final_newline = true
# C# files
[*.cs]
#### .NET Coding Conventions ####
# this. and Me. preferences
@ -138,8 +164,8 @@ csharp_space_between_square_brackets = false
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = true
# Naming Symbols
# constant_fields - Define constant fields
dotnet_naming_symbols.constant_fields.applicable_kinds = field
dotnet_naming_symbols.constant_fields.required_modifiers = const
@ -171,6 +197,7 @@ dotnet_naming_symbols.non_interface_types.applicable_kinds
dotnet_naming_symbols.interface_types.applicable_kinds = interface
# Naming Styles
# camel_case - Define the camelCase style
dotnet_naming_style.camel_case.capitalization = camel_case
# pascal_case - Define the Pascal_case style
@ -239,15 +266,8 @@ dotnet_naming_rule.interface_types_must_be_prefixed_with_i.style
dotnet_naming_style.prefix_private_field_with_underscore.capitalization = camel_case
dotnet_naming_style.prefix_private_field_with_underscore.required_prefix = _
# Code files
# .NET Code Analysis
# SA1009: Closing parenthesis should be spaced correctly
# Needed for null forgiving operator after functions, "foo()!"
dotnet_diagnostic.SA1009.severity = none
[*.{cs,vb}]
# Migrate back from old Toolkit.ruleset
dotnet_diagnostic.CA1001.severity = warning
dotnet_diagnostic.CA1009.severity = warning
dotnet_diagnostic.CA1016.severity = warning
@ -310,24 +330,43 @@ dotnet_diagnostic.CA2238.severity = warning
dotnet_diagnostic.CA2240.severity = warning
dotnet_diagnostic.CA2241.severity = warning
dotnet_diagnostic.CA2242.severity = warning
# StyleCop Code Analysis
# Closing parenthesis should be spaced correctly: "foo()!"
dotnet_diagnostic.SA1009.severity = none
# Hide warnings when using the new() expression from C# 9.
dotnet_diagnostic.SA1000.severity = none
dotnet_diagnostic.SA1011.severity = none
dotnet_diagnostic.SA1101.severity = none
# Hide warnings when accessing properties without "this".
dotnet_diagnostic.SA1101.severity = none
dotnet_diagnostic.SA1118.severity = none
dotnet_diagnostic.SA1200.severity = none
dotnet_diagnostic.SA1201.severity = none
dotnet_diagnostic.SA1202.severity = none
dotnet_diagnostic.SA1309.severity = none
dotnet_diagnostic.SA1310.severity = none
# Hide warnings for record parameters.
dotnet_diagnostic.SA1313.severity = none
# TypeParameterNamesMustBeginWithT: We do have a few templates that don't start with T. We need to double check that changing this is not a breaking change. If not, we can re-enable this.
dotnet_diagnostic.SA1314.severity = none
# UseTrailingCommasInMultiLineInitializers: This would also mean a lot of changes at the end of all multiline initializers. It's also debatable if we want this or not.
dotnet_diagnostic.SA1413.severity = none
dotnet_diagnostic.SA1600.severity = none
dotnet_diagnostic.SA1602.severity = none
dotnet_diagnostic.SA1611.severity = none
# DocumentationTextMustEndWithAPeriod: Let's enable this rule back when we shift to WinUI3 (v8.x). If we do it now, it would mean more than 400 file changes.
dotnet_diagnostic.SA1629.severity = none
dotnet_diagnostic.SA1633.severity = none
dotnet_diagnostic.SA1634.severity = none
dotnet_diagnostic.SA1652.severity = none
dotnet_diagnostic.SA1629.severity = none # DocumentationTextMustEndWithAPeriod: Let's enable this rule back when we shift to WinUI3 (v8.x). If we do it now, it would mean more than 400 file changes.
dotnet_diagnostic.SA1413.severity = none # UseTrailingCommasInMultiLineInitializers: This would also mean a lot of changes at the end of all multiline initializers. It's also debatable if we want this or not.
dotnet_diagnostic.SA1314.severity = none # TypeParameterNamesMustBeginWithT: We do have a few templates that don't start with T. We need to double check that changing this is not a breaking change. If not, we can re-enable this.
dotnet_diagnostic.SA1000.severity = none # Hide warnings when using the new() expression from C# 9.
dotnet_diagnostic.SA1313.severity = none # Hide warnings for record parameters.
dotnet_diagnostic.SA1101.severity = none # Hide warnings when accessing properties without "this".

2
.github/ISSUE_TEMPLATE/bug_report.md поставляемый
Просмотреть файл

@ -9,7 +9,7 @@ assignees: ''
<!-- 🚨 PLEASE DO NOT SKIP ANY INSTRUCTIONS AND INFORMATION MENTIONED BELOW AS THEY ARE ALL REQUIRED AND ESSENTIAL TO INVESTIGATE THE ISSUE. ISSUES WITH MISSING INFORMATION MAY BE CLOSED WITHOUT INVESTIGATION
...
IF NOT CERTAIN ABOUT THE ISSUE AND REQUIRE MORE CLARITY THEN PLEASE POST ON "QUESTIONS & HELP" CATEGORY OF THE DISCUSSIONS PLATFORM [https://github.com/windows-toolkit/WindowsCommunityToolkit/discussions/categories/questions-help] WHERE YOU CAN DISCUSS AND ENAGAGE WITH THE COMMUNITY TO GAIN FURTHER CLAIRITY REGARDING THE ISSUE 🚨 -->
IF NOT CERTAIN ABOUT THE ISSUE AND REQUIRE MORE CLARITY THEN PLEASE POST ON "QUESTIONS & HELP" CATEGORY OF THE DISCUSSIONS PLATFORM [https://github.com/CommunityToolkit/WindowsCommunityToolkit/discussions/categories/questions-help] WHERE YOU CAN DISCUSS AND ENAGAGE WITH THE COMMUNITY TO GAIN FURTHER CLAIRITY REGARDING THE ISSUE 🚨 -->
## Describe the bug
A clear and concise description of what the bug is.

2
.github/ISSUE_TEMPLATE/feature_request.md поставляемый
Просмотреть файл

@ -9,7 +9,7 @@ assignees: ''
<!-- 🚨 PLEASE PROVIDE DETAILED INFORMATION AND DO NOT SKIP ANY INSTRUCTIONS AND INFORMATION MENTIONED BELOW AS THEY ARE ALL REQUIRED AND ESSENTIAL TO HELP US UNDERSTAND THE FEATURE.
...
IF NOT CERTAIN ABOUT THE FEATURE AND REQUIRE MORE CLARITY THEN PLEASE POST ON "IDEAS" CATEGORY OF THE DISCUSSIONS PLATFORM [https://github.com/windows-toolkit/WindowsCommunityToolkit/discussions/categories/ideas] WHERE YOU CAN DISCUSS AND ENAGAGE WITH THE COMMUNITY TO GAIN FURTHER CLAIRITY REGARDING THE FEATURE 🚨 -->
IF NOT CERTAIN ABOUT THE FEATURE AND REQUIRE MORE CLARITY THEN PLEASE POST ON "IDEAS" CATEGORY OF THE DISCUSSIONS PLATFORM [https://github.com/CommunityToolkit/WindowsCommunityToolkit/discussions/categories/ideas] WHERE YOU CAN DISCUSS AND ENAGAGE WITH THE COMMUNITY TO GAIN FURTHER CLAIRITY REGARDING THE FEATURE 🚨 -->
## Describe the problem this feature would solve
<!-- Please describe or link to any existing issues or discussions.

2
.github/ISSUE_TEMPLATE/question.md поставляемый
Просмотреть файл

@ -12,7 +12,7 @@ Hi!
We try and keep our GitHub issue list for bugs and features.
Ideally, it'd be great to post your question on Stack Overflow using the 'windows-community-toolkit' tag here: https://stackoverflow.com/questions/tagged/windows-community-toolkit OR you may ask the question on "Questions & Help" category of the Discussions platform [https://github.com/windows-toolkit/WindowsCommunityToolkit/discussions/categories/questions-help]
Ideally, it'd be great to post your question on Stack Overflow using the 'windows-community-toolkit' tag here: https://stackoverflow.com/questions/tagged/windows-community-toolkit OR you may ask the question on "Questions & Help" category of the Discussions platform [https://github.com/CommunityToolkit/WindowsCommunityToolkit/discussions/categories/questions-help]
🚨 PLEASE PROVIDE DETAILED INFORMATION THAT INCLUDE EXAMPLES, SCREENSHOTS, AND RELEVANT ISSUES IF POSSIBLE 🚨

2
.github/ISSUE_TEMPLATE/win32_controls.md поставляемый
Просмотреть файл

@ -10,7 +10,7 @@ assignees: ''
<!--
Hi!
We have a separate toolkit repo for our Win32 controls that work in WPF or WinForms, please file an issue instead at https://github.com/windows-toolkit/Microsoft.Toolkit.Win32/issues/new
We have a separate toolkit repo for our Win32 controls that work in WPF or WinForms, please file an issue instead at https://github.com/CommunityToolkit/Microsoft.Toolkit.Win32/issues/new
Otherwise, this issue will automatically be moved to that repo.

4
.github/PULL_REQUEST_TEMPLATE.md поставляемый
Просмотреть файл

@ -39,8 +39,8 @@ Please check if your PR fulfills the following requirements:
- [ ] Tested code with current [supported SDKs](../readme.md#supported)
- [ ] Pull Request has been submitted to the documentation repository [instructions](..\contributing.md#docs). Link: <!-- docs PR link -->
- [ ] Sample in sample app has been added / updated (for bug fixes / features)
- [ ] Icon has been created (if new sample) following the [Thumbnail Style Guide and templates](https://github.com/windows-toolkit/WindowsCommunityToolkit-design-assets)
- [ ] New major technical changes in the toolkit have or will be added to the [Wiki](https://github.com/windows-toolkit/WindowsCommunityToolkit/wiki) e.g. build changes, source generators, testing infrastructure, sample creation changes, etc...
- [ ] Icon has been created (if new sample) following the [Thumbnail Style Guide and templates](https://github.com/CommunityToolkit/WindowsCommunityToolkit-design-assets)
- [ ] New major technical changes in the toolkit have or will be added to the [Wiki](https://github.com/CommunityToolkit/WindowsCommunityToolkit/wiki) e.g. build changes, source generators, testing infrastructure, sample creation changes, etc...
- [ ] Tests for the changes have been added (for bug fixes / features) (if applicable)
- [ ] Header has been added to all new source files (run *build/UpdateHeaders.bat*)
- [ ] Contains **NO** breaking changes

Просмотреть файл

@ -12,16 +12,16 @@ Due to the high volume of incoming issues please keep our GitHub issues for bug
For missing documentation related question, please file an issue at [Microsoft Docs](https://github.com/MicrosoftDocs/WindowsCommunityToolkitDocs/issues/new).
## <a name="bug"></a> Fix a Bug :bug:
If you find any bug, you can help the community by [submitting an issue](https://github.com/windows-toolkit/WindowsCommunityToolkit/issues/new?assignees=&labels=bug+%3Abug%3A&template=bug_report.md&title=). Once the issue is filed, feel free to start working on the PR and submit a PR.
If you find any bug, you can help the community by [submitting an issue](https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/new?assignees=&labels=bug+%3Abug%3A&template=bug_report.md&title=). Once the issue is filed, feel free to start working on the PR and submit a PR.
## <a name="issue"></a>Good First Issue :ok_hand:
If this is your first time contributing to the Windows Community Toolkit and do not have advanced level programming experience, we have got you covered :boom: WCT has a list of [good first issue](https://github.com/windows-toolkit/WindowsCommunityToolkit/labels/good%20first%20issue%20%3Aok_hand%3A) that can be a great entryway to find and fix any issues that best fit your expertise or technical background.
If this is your first time contributing to the Windows Community Toolkit and do not have advanced level programming experience, we have got you covered :boom: WCT has a list of [good first issue](https://github.com/CommunityToolkit/WindowsCommunityToolkit/labels/good%20first%20issue%20%3Aok_hand%3A) that can be a great entryway to find and fix any issues that best fit your expertise or technical background.
## <a name="help"></a>Help Wanted :raising_hand:
WCT has a list of issues that are labeled as [help wanted](https://github.com/windows-toolkit/WindowsCommunityToolkit/labels/help%20wanted%20%3Araising_hand%3A). The level of complexity in the list can vary but if you have an advanced level of programming experience, feel free to jump in to solve these issues.
WCT has a list of issues that are labeled as [help wanted](https://github.com/CommunityToolkit/WindowsCommunityToolkit/labels/help%20wanted%20%3Araising_hand%3A). The level of complexity in the list can vary but if you have an advanced level of programming experience, feel free to jump in to solve these issues.
## <a name="feature"></a>Add New Feature :mailbox_with_mail:
* To contribute a new feature, fill out the [Feature Request Template](https://github.com/windows-toolkit/WindowsCommunityToolkit/issues/new?assignees=&labels=feature+request+%3Amailbox_with_mail%3A&template=feature_request.md&title=%5BFeature%5D) and provide detailed information to express the proposal.
* To contribute a new feature, fill out the [Feature Request Template](https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/new?assignees=&labels=feature+request+%3Amailbox_with_mail%3A&template=feature_request.md&title=%5BFeature%5D) and provide detailed information to express the proposal.
* Once the Feature Request is submitted, it will be open for discussion.
* If it gets approved by the team, proceed to submit a PR of the proposed Feature.
* If the PR contains an error-free code and the reviewer signs off, the PR will be merged.

Просмотреть файл

@ -1,63 +1,65 @@
<Project>
<PropertyGroup>
<Authors>Microsoft.Toolkit</Authors>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<NoPackageAnalysis>true</NoPackageAnalysis>
<PackageIconUrl>https://raw.githubusercontent.com/windows-toolkit/WindowsCommunityToolkit/main/build/nuget.png</PackageIconUrl>
<PackageIcon>images\nuget.png</PackageIcon>
<PackageProjectUrl>https://github.com/windows-toolkit/WindowsCommunityToolkit</PackageProjectUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageReleaseNotes>https://github.com/windows-toolkit/WindowsCommunityToolkit/releases</PackageReleaseNotes>
<Copyright>(c) .NET Foundation and Contributors. All rights reserved.</Copyright>
<DefaultLanguage>en-US</DefaultLanguage>
<IsDesignProject>$(MSBuildProjectName.Contains('.Design'))</IsDesignProject>
<IsTestProject>$(MSBuildProjectName.Contains('Test'))</IsTestProject>
<IsUwpProject Condition="'$(IsDesignProject)' != 'true'">$(MSBuildProjectName.Contains('Uwp'))</IsUwpProject>
<IsSampleProject>$(MSBuildProjectName.Contains('Sample'))</IsSampleProject>
<TargetPlatformBaseVersion>10.0</TargetPlatformBaseVersion>
<TargetPlatformRevision>19041</TargetPlatformRevision>
<TargetPlatformMinRevision>17763</TargetPlatformMinRevision>
<PackageOutputPath>$(MSBuildThisFileDirectory)bin\nupkg</PackageOutputPath>
<RepositoryDirectory>$(MSBuildThisFileDirectory)</RepositoryDirectory>
<BuildToolsDirectory>$(RepositoryDirectory)build\</BuildToolsDirectory>
</PropertyGroup>
<PropertyGroup Condition="'$(TF_BUILD)' == 'true'">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>
<Import Project="$(BuildToolsDirectory)Windows.Toolkit.Common.props" />
<Choose>
<When Condition="'$(IsTestProject)' != 'true' and '$(IsSampleProject)' != 'true' and '$(IsDesignProject)' != 'true'">
<When Condition="$(IsCoreProject)">
<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<PackageOutputPath>$(RepositoryDirectory)bin\nupkg</PackageOutputPath>
<GenerateLibraryLayout Condition="$(IsUwpProject)">true</GenerateLibraryLayout>
<TreatWarningsAsErrors Condition="'$(Configuration)' == 'Release'">true</TreatWarningsAsErrors>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<IsPackable>false</IsPackable>
<IsPublishable>false</IsPublishable>
<NoWarn>$(NoWarn);CS8002;SA0001</NoWarn>
</PropertyGroup>
</Otherwise>
</Choose>
<Choose>
<When Condition="('$(IsUwpProject)' == 'true') and '$(IsSampleProject)' != 'true' and '$(IsDesignProject)' != 'true'">
<When Condition="$(IsUwpProject)">
<PropertyGroup>
<GenerateLibraryLayout>true</GenerateLibraryLayout>
<!-- Code CS8002 is a warning for strong named -> non-strong-named reference. This is valid for platforms other than .NET Framework (and is needed for the UWP targets. -->
<NoWarn>$(NoWarn);CS8002</NoWarn>
<!-- For including default @(Page) and @(Resource) items via 'MSBuild.Sdk.Extras' Sdk package. Also provides up to date check and file nesting -->
<ExtrasEnableDefaultXamlItems>true</ExtrasEnableDefaultXamlItems>
</PropertyGroup>
</When>
</Choose>
<Choose>
<When Condition="'$(Configuration)' == 'Debug' and '$(IsDesignProject)' != 'true'">
<!-- Debug builds have this turned on by default, but it breaks our Xaml Islands Scenarios -->
<PropertyGroup>
<When Condition="!$(IsDesignProject)">
<!--
Debug builds have this turned on by default, but it breaks our Xaml Islands Scenarios.
ARM64 builds for managed apps use .NET Native. We can't use the Reflection Provider for that.
-->
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<EnableXBindDiagnostics>false</EnableXBindDiagnostics>
<EnableTypeInfoReflection>false</EnableTypeInfoReflection>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="All" />
</ItemGroup>
</When>
</Choose>
<Import Project="$(BuildToolsDirectory)Windows.Toolkit.VisualStudio.Design.props" Condition="$(IsDesignProject)" />
<ItemGroup>
<PackageReference Include="Nerdbank.GitVersioning" Version="3.3.37" PrivateAssets="All" />
</ItemGroup>
<Choose>
<When Condition="'$(SourceLinkEnabled)' != 'false' and '$(IsSampleProject)' != 'true'">
<When Condition="!$(IsSampleProject) and '$(SourceLinkEnabled)' != 'false'">
<PropertyGroup>
<!-- Declare that the Repository URL can be published to NuSpec -->
<PublishRepositoryUrl>true</PublishRepositoryUrl>
@ -67,51 +69,9 @@
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.AzureRepos.Git" Version="1.0.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="'$(IsDesignProject)' != 'true'">
<ItemGroup>
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" IncludeAssets="runtime; build; native; contentfiles; analyzers; buildtransitive" />
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="'$(IsTestProject)' != 'true' and '$(IsSampleProject)' != 'true' and '$(IsDesignProject)' != 'true'">
<ItemGroup>
<EmbeddedResource Include="**\*.rd.xml" />
<Page Include="**\*.xaml" Exclude="**\bin\**\*.xaml;**\obj\**\*.xaml" SubType="Designer" Generator="MSBuild:Compile" />
<Compile Update="**\*.xaml.cs" DependentUpon="%(Filename)" />
</ItemGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
</When>
</Choose>
<PropertyGroup Condition="'$(IsUwpProject)' == 'true'">
<!-- 8002 is a strong named -> non-strong-named reference -->
<!-- This is valid for platforms other than .NET Framework (and is needed for the UWP targets -->
<NoWarn>$(NoWarn);8002</NoWarn>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Nerdbank.GitVersioning" Version="3.3.37" PrivateAssets="all" />
</ItemGroup>
<ItemGroup>
<AdditionalFiles Include="$(MSBuildThisFileDirectory)stylecop.json">
<Link>stylecop.json</Link>
</AdditionalFiles>
<None Include="$(MSBuildThisFileDirectory)License.md" Pack="true" PackagePath="\" />
<None Include="$(MSBuildThisFileDirectory)build\nuget.png" Pack="true" PackagePath="images\" />
</ItemGroup>
<Import Project="$(MSBuildThisFileDirectory)build\Windows.Toolkit.VisualStudio.Design.props" Condition="'$(IsDesignProject)' == 'true'" />
</Project>
</Project>

Просмотреть файл

@ -1,12 +1,16 @@
<Project>
<Import Project="$(BuildToolsDirectory)Windows.Toolkit.Common.targets" />
<PropertyGroup>
<UseUWP Condition="$(TargetFramework.Contains(`uap10.0`)) or '$(TargetFramework)' == 'net461'">true</UseUWP>
<!-- Exclude Notifications project from this since it sets different min versions than what we want for notifications -->
<UseUWP Condition="($(TargetFramework.StartsWith('uap10.0')) or '$(TargetFramework)' == 'net461') and '$(MSBuildProjectName)' != 'Microsoft.Toolkit.Uwp.Notifications'">true</UseUWP>
<UseUWP Condition="'$(UseUWP)' == ''">false</UseUWP>
</PropertyGroup>
<Choose>
<!-- We'll include signing the Notifications library since we need the DLL signature to match for interop from class libraries to main projects -->
<When Condition="(!$(TargetFramework.Contains(`uap10.0`)) and '$(TargetFramework)' != 'native' and '$(IsSampleProject)' != 'true') or $(MSBuildProjectName) == 'Microsoft.Toolkit.Uwp.Notifications'">
<When Condition="!($(TargetFramework.StartsWith('uap10.0')) or '$(TargetFramework)' == 'native' or $(IsSampleProject)) or '$(MSBuildProjectName)' == 'Microsoft.Toolkit.Uwp.Notifications'">
<PropertyGroup>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)toolkit.snk</AssemblyOriginatorKeyFile>
@ -14,8 +18,9 @@
</When>
</Choose>
<!--Exclude Notifications project from this since it sets different min versions than what we want for notifications-->
<Import Project="$(MSBuildThisFileDirectory)build\Windows.Toolkit.Uwp.Build.targets" Condition="'$(UseUWP)' == 'true' and $(MSBuildProjectName) != 'Microsoft.Toolkit.Uwp.Notifications'" />
<Import Project="$(BuildToolsDirectory)Windows.Toolkit.UWP.Build.targets" Condition="$(UseUWP)" />
<Import Project="$(BuildToolsDirectory)Windows.Toolkit.Workarounds.Xaml.targets" Condition="$(IsCoreProject)" />
<Target Name="AddCommitHashToAssemblyAttributes" BeforeTargets="GetAssemblyAttributes">
<ItemGroup>

Просмотреть файл

@ -17,12 +17,12 @@
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WindowsXamlEnableOverview>true</WindowsXamlEnableOverview>
<AppxPackageSigningEnabled>false</AppxPackageSigningEnabled>
<NoWarn>$(NoWarn);2008</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -33,7 +33,6 @@
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -45,7 +44,6 @@
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -56,7 +54,6 @@
<OutputPath>bin\ARM\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -68,7 +65,6 @@
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -79,7 +75,6 @@
<OutputPath>bin\ARM64\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>ARM64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -91,7 +86,6 @@
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -102,7 +96,6 @@
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>

Просмотреть файл

@ -266,7 +266,7 @@ GenerateTextForItems(EnumerableTypes, item =>
// in 2-complement to perform the bounds check with a single compare operation.
// This is the same trick used throughout CoreCLR as well.
// For more info and code sample, see the original conversation here:
// https://github.com/windows-toolkit/WindowsCommunityToolkit/pull/3131#discussion_r390682835
// https://github.com/CommunityToolkit/WindowsCommunityToolkit/pull/3131#discussion_r390682835
#>
if ((uint)index < (uint)<#=item.Name#>.<#=item.Size#>)
{

Просмотреть файл

@ -1,17 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard1.4;netstandard2.0;netstandard2.1;net5.0</TargetFrameworks>
<LangVersion>9.0</LangVersion>
<Nullable>Enable</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Nullable>enable</Nullable>
<Title>Windows Community Toolkit Diagnostics .NET Standard</Title>
<TargetFrameworks>netstandard1.4;netstandard2.0;netstandard2.1;net5.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - Diagnostics (.NET Standard)</Title>
<Description>
This package includes .NET Standard code only helpers such as:
- Guard: Helper methods to verify conditions when running code.
- ThrowHelper: Helper methods to efficiently throw exceptions.
</Description>
<PackageTags>Windows;Community;Toolkit;WCT;UWP;Incremental;Loading;Collection;IncrementalLoadingCollection;String;Array;extensions;helpers</PackageTags>
<PackageTags>Diagnostics;Guard;ThrowHelper;TypeInfo;Extensions;Helpers</PackageTags>
</PropertyGroup>
<Choose>

Просмотреть файл

@ -1,11 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard1.4;netstandard2.0;netstandard2.1;netcoreapp2.1;netcoreapp3.1;net5.0</TargetFrameworks>
<LangVersion>9.0</LangVersion>
<Nullable>enable</Nullable>
<Nullable>Enable</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Title>Windows Community Toolkit High Performance .NET Standard</Title>
<TargetFrameworks>netstandard1.4;netstandard2.0;netstandard2.1;netcoreapp2.1;netcoreapp3.1;net5.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - High Performance (.NET Standard)</Title>
<Description>
This package includes high performance .NET Standard helpers such as:
- Memory2D&lt;T&gt; and Span2D&lt;T&gt;: two types providing fast and allocation-free abstraction over 2D memory areas.
@ -22,7 +24,7 @@
- Ref&lt;T&gt;: a stack-only struct that can store a reference to a value of a specified type.
- NullableRef&lt;T&gt;: a stack-only struct similar to Ref&lt;T&gt;, which also supports nullable references.
</Description>
<PackageTags>Windows;Community;Toolkit;WCT;UWP;core;standard;unsafe;span;memory;string;array;stream;buffer;extensions;helpers;parallel;performance</PackageTags>
<PackageTags>Parallel;Performance;Unsafe;Span;Memory;String;StringPool;Array;Stream;Buffer;Extensions;Helpers</PackageTags>
</PropertyGroup>
<Choose>

Просмотреть файл

@ -1,11 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net5.0</TargetFrameworks>
<LangVersion>9.0</LangVersion>
<Nullable>enable</Nullable>
<Nullable>Enable</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Title>Windows Community Toolkit MVVM Toolkit</Title>
<TargetFrameworks>netstandard2.0;netstandard2.1;net5.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - MVVM (.NET Standard)</Title>
<Description>
This package includes a .NET Standard MVVM library with helpers such as:
- ObservableObject: a base class for objects implementing the INotifyPropertyChanged interface.
@ -17,7 +19,7 @@
- StrongReferenceMessenger: a high-performance messaging system that trades weak references for speed.
- Ioc: a helper class to configure dependency injection service containers.
</Description>
<PackageTags>Windows;Community;Toolkit;WCT;UWP;WinUI;WPF;Xamarin;Forms;Uno;Platform;MVVM;Toolkit;MVVMToolkit;INotifyPropertyChanged;observable;Ioc;dependency injection;services;extensions;helpers</PackageTags>
<PackageTags>MVVM;Toolkit;MVVMToolkit;INotifyPropertyChanged;Observable;IOC;DI;Dependency Injection;Object Messaging;Extensions;Helpers</PackageTags>
</PropertyGroup>
<!-- .NET Standard 2.0 doesn't have the Span<T> and IAsyncEnumerable<T> types -->

Просмотреть файл

@ -2,9 +2,12 @@
<PropertyGroup>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
<Title>Windows Community Toolkit Devices</Title>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - Devices</Title>
<Description>This library enables easier consumption of connectivity Devices/Peripherals and handle its connection to Windows devices. It contains BluetoothLE and Network connectivity helpers.</Description>
<PackageTags>Windows;Community;Toolkit;WCT;UWP;Devices;Bluetooth;LE;BluetoothLE;BLE;Networking</PackageTags>
<PackageTags>Devices;Bluetooth;LE;BluetoothLE;BLE;Networking</PackageTags>
</PropertyGroup>
<ItemGroup>

Просмотреть файл

@ -2,27 +2,21 @@
<PropertyGroup>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
<Title>Windows Community Toolkit Developer Tools</Title>
<Description>This library provides XAML user controls and services to help developers build their app. It is part of the Windows Community Toolkit.
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - Developer Tools</Title>
<Description>This library provides XAML user controls and services to help developers build their app. It is a part of the Windows Community Toolkit.
-AligmentGrid : Displays a Grid that helps align the controls.
-FocusTrackerControl : The FocusTracker Control is a feature that can be used to display information about the current focused XAML element.
-Themes : Provides the source path of the resource dictionaries for the FocusTracker.
</Description>
<PackageTags>Windows;Community;Toolkit;WCT;UWP;Controls;XAML;Developer;Tools;Accessibility;Alignment;Grid;AlignmentGrid</PackageTags>
<PackageTags>Controls;XAML;Developer;Tools;Accessibility;Alignment;Grid;AlignmentGrid</PackageTags>
</PropertyGroup>
<ItemGroup>
<None Include="VisualStudioToolsManifest.xml" Pack="true" PackagePath="tools" />
</ItemGroup>
<!-- https://weblogs.asp.net/rweigelt/disable-warnings-in-generated-c-files-of-uwp-app -->
<Target Name="PragmaWarningDisablePrefixer" AfterTargets="MarkupCompilePass2">
<ItemGroup>
<GeneratedCSFiles Include="**\*.g.cs;**\*.g.i.cs" />
</ItemGroup>
<Message Text="CSFiles: @(GeneratedCSFiles->'&quot;%(Identity)&quot;')" />
<Exec Command="for %%f in (@(GeneratedCSFiles->'&quot;%(Identity)&quot;')) do echo #pragma warning disable &gt; %%f.temp &amp;&amp; type %%f &gt;&gt; %%f.temp &amp;&amp; move /y %%f.temp %%f &gt; NUL" />
</Target>
</Project>

Просмотреть файл

@ -1,12 +1,16 @@
<Project Sdk="MSBuild.Sdk.Extras">
<PropertyGroup>
<TargetFramework>uap10.0.17134</TargetFramework>
<Title>Windows Community Toolkit Eye Gaze Library</Title>
<Description>A library to integrate gaze interactions using eye trackers into UWP applications</Description>
<PackageTags>Windows;Community;Toolkit;WCT;UWP;Gaze;Eye;Tracker;EyeTracker</PackageTags>
<TargetFrameworks>uap10.0.17134</TargetFrameworks>
<RootNamespace>Microsoft.Toolkit.Uwp.Input</RootNamespace>
<TargetPlatformVersion>10.0.19041.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.17134.0</TargetPlatformMinVersion>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - Input - Gaze Interaction (w. Eye Tracker)</Title>
<Description>A library to integrate gaze interactions using eye trackers into UWP applications</Description>
<PackageTags>Input;Gaze;Eye;Tracker;EyeTracker</PackageTags>
</PropertyGroup>
</Project>

Просмотреть файл

@ -8,7 +8,6 @@
<PropertyGroup Condition="'$(TargetFramework)' == 'uap10.0.19041'">
<TargetPlatformVersion>10.0.19041.0</TargetPlatformVersion>
<DefaultTargetPlatformMinVersion>16299</DefaultTargetPlatformMinVersion>
<TargetPlatformMinVersion>10.0.16299.0</TargetPlatformMinVersion>
</PropertyGroup>
@ -26,7 +25,6 @@
<NuGetTargetMoniker Condition="'$(DesignTimeBuild)' != 'true'">UAP,Version=v10.0</NuGetTargetMoniker>
<PackageTargetFallback>uap10.0</PackageTargetFallback>
<TargetPlatformVersion>10.0.19041.0</TargetPlatformVersion>
<DefaultTargetPlatformMinVersion>10240</DefaultTargetPlatformMinVersion>
<TargetPlatformMinVersion>10.0.10240.0</TargetPlatformMinVersion>
<DefineConstants Condition="'$(DisableImplicitFrameworkDefines)' != 'true'">$(DefineConstants);WINDOWS_UWP;WINRT</DefineConstants>
<CopyLocalLockFileAssemblies Condition="'$(CopyLocalLockFileAssemblies)' == ''">false</CopyLocalLockFileAssemblies>

Просмотреть файл

@ -6,18 +6,18 @@
<authors>Microsoft.Toolkit,dotnetfoundation</authors>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="expression">MIT</license>
<projectUrl>https://github.com/windows-toolkit/WindowsCommunityToolkit</projectUrl>
<iconUrl>https://raw.githubusercontent.com/windows-toolkit/WindowsCommunityToolkit/main/build/nuget.png</iconUrl>
<icon>images\nuget.png</icon>
<projectUrl>https://github.com/CommunityToolkit/WindowsCommunityToolkit</projectUrl>
<iconUrl>https://raw.githubusercontent.com/CommunityToolkit/WindowsCommunityToolkit/main/build/nuget.png</iconUrl>
<icon>Icon.png</icon>
<description>The official way to send toast notifications on Windows 10 via code rather than XML, with the help of IntelliSense. Supports all C# app types, including WPF, UWP, WinForms, and Console, even without packaging your app as MSIX. Also supports C++ UWP apps.
Additionally, generate notification payloads from your ASP.NET web server to send as push notifications, or generate notification payloads from class libraries.
For UWP/MSIX apps, you can also generate tile and badge notifications.</description>
<releaseNotes>https://github.com/windows-toolkit/WindowsCommunityToolkit/releases</releaseNotes>
<releaseNotes>https://github.com/CommunityToolkit/WindowsCommunityToolkit/releases</releaseNotes>
<copyright>(c) .NET Foundation and Contributors. All rights reserved.</copyright>
<tags>notifications win10 windows 10 tile tiles toast toasts badge xml uwp c# csharp c++ wpf winforms</tags>
<repository type="git" url="https://github.com/windows-toolkit/WindowsCommunityToolkit.git" commit="72205c9add7c3fc1ed63bb77e6fc101e39f1ac33" />
<repository type="git" url="https://github.com/CommunityToolkit/WindowsCommunityToolkit.git" commit="72205c9add7c3fc1ed63bb77e6fc101e39f1ac33" />
<dependencies>
<group targetFramework=".NETStandard1.4">
<dependency id="NETStandard.Library" version="1.6.1" exclude="Build,Analyzers" />
@ -52,7 +52,7 @@
</dependencies>
</metadata>
<files>
<file src="..\build\nuget.png" target="images\" />
<file src="..\build\nuget.png" target="Icon.png" />
<file src="..\license.md" target="" />
<file src="Microsoft.Toolkit.Uwp.Notifications.targets" target="build\native\Microsoft.Toolkit.Uwp.Notifications.targets" />
<file src="$buildOutput$\net461\Microsoft.Toolkit.Uwp.Notifications.dll" target="lib\net461\Microsoft.Toolkit.Uwp.Notifications.dll" />

Просмотреть файл

@ -1,7 +1,7 @@
<!--
This file enable reflections for Toolkit.Notifications and all of its public/private members,
enabling the library to work in .NET Native even if developers modified their default rd.xml.
See issue https://github.com/windows-toolkit/WindowsCommunityToolkit/issues/3093 for more details.
This file enables reflection for 'Uwp.Notifications' and all of its public/private members.
Thus, making the library to work in .NET Native, even if developers modified their default rd.xml.
See issue https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/3093 for more details.
-->
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Library Name="Microsoft.Toolkit.Uwp.Notifications">

Просмотреть файл

@ -270,44 +270,46 @@ namespace Microsoft.Toolkit.Uwp.SampleApp.Controls
else if (firstInline is TextRunInline textRunInline)
{
var key = textRunInline.Text.Split(' ').FirstOrDefault();
if (styles.TryGetValue(key, out var style) && !style.Ignore)
if (styles.TryGetValue(key, out var style))
{
noteType = style;
header = style.IdentifierReplacement;
symbolGlyph = style.Glyph;
// Removes the identifier from the text
textRunInline.Text = textRunInline.Text.Replace(key, string.Empty);
if (theme == ElementTheme.Light)
if (!style.Ignore)
{
localForeground = style.LightForeground;
localBackground = style.LightBackground;
noteType = style;
header = style.IdentifierReplacement;
symbolGlyph = style.Glyph;
// Removes the identifier from the text
textRunInline.Text = textRunInline.Text.Replace(key, string.Empty);
if (theme == ElementTheme.Light)
{
localForeground = style.LightForeground;
localBackground = style.LightBackground;
}
else
{
localForeground = new SolidColorBrush(Colors.White);
localBackground = style.DarkBackground;
}
// Apply special formatting context.
if (noteType != null)
{
if (localContext?.Clone() is UIElementCollectionRenderContext newContext)
{
localContext = newContext;
localContext.TrimLeadingWhitespace = true;
QuoteForeground = Foreground;
LinkForeground = localForeground;
}
}
}
else
{
localForeground = new SolidColorBrush(Colors.White);
localBackground = style.DarkBackground;
// Blank entire block
textRunInline.Text = string.Empty;
}
// Apply special formatting context.
if (noteType != null)
{
if (localContext?.Clone() is UIElementCollectionRenderContext newContext)
{
localContext = newContext;
localContext.TrimLeadingWhitespace = true;
QuoteForeground = Foreground;
LinkForeground = localForeground;
}
}
}
if (style.Ignore)
{
// Blank entire block
textRunInline.Text = string.Empty;
}
}
}

Просмотреть файл

@ -20,13 +20,12 @@
<AppxBundlePlatforms>x86|x64|arm|arm64</AppxBundlePlatforms>
<Win32Resource>MiddleClickScrolling-CursorType.res</Win32Resource>
<AppxPackageSigningEnabled>false</AppxPackageSigningEnabled>
<LangVersion>8.0</LangVersion>
<NoWarn>$(NoWarn);2008</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -38,7 +37,6 @@
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP;REMOTE_DOCS</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -53,7 +51,6 @@
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -64,7 +61,6 @@
<OutputPath>bin\ARM\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP;REMOTE_DOCS</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -79,7 +75,6 @@
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -90,7 +85,6 @@
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP;REMOTE_DOCS</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -439,7 +433,7 @@
<Content Include="SamplePages\Menu\Menu.bind" />
<Content Include="SamplePages\InAppNotification\InAppNotificationCode.bind" />
<Content Include="SamplePages\InAppNotification\InAppNotificationXaml.bind" />
<Content Include="SamplePages\ListViewExtensions\ListViewExtensionsCode.bind" />
<Content Include="SamplePages\ListViewExtensions\ListViewExtensionsXaml.bind" />
<Content Include="SamplePages\Implicit Animations\ImplicitAnimationsCode.bind" />
<Content Include="SamplePages\DispatcherQueueHelper\DispatcherQueueHelperCode.bind" />
<Content Include="SamplePages\TextToolbar\TextToolbar.bind" />
@ -626,6 +620,7 @@
<Content Include="SamplePages\Graph\LoginButtonXaml.bind" />
<Content Include="SamplePages\Graph\PeoplePickerXaml.bind" />
<Content Include="SamplePages\Graph\PersonViewXaml.bind" />
<Content Include="SamplePages\ListViewExtensions\ListViewExtensionsCode.bind" />
</ItemGroup>
<ItemGroup>
<Compile Include="App.xaml.cs">
@ -1475,7 +1470,6 @@
<Name>Visual C++ 2015 Runtime for Universal Windows Platform Apps</Name>
</SDKReference>
</ItemGroup>
<ItemGroup />
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '14.0' ">
<VisualStudioVersion>14.0</VisualStudioVersion>
</PropertyGroup>
@ -1483,7 +1477,6 @@
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<NoStdLib>true</NoStdLib>
<DebugType>full</DebugType>
<PlatformTarget>ARM64</PlatformTarget>
@ -1496,7 +1489,6 @@
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP;REMOTE_DOCS</DefineConstants>
<Optimize>true</Optimize>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<NoWarn>;2008</NoWarn>
<NoStdLib>true</NoStdLib>
<DebugType>pdbonly</DebugType>
<PlatformTarget>ARM64</PlatformTarget>
@ -1540,14 +1532,6 @@
</AppxPackagePayload>
</ItemGroup>
</Target>
<!-- https://weblogs.asp.net/rweigelt/disable-warnings-in-generated-c-files-of-uwp-app -->
<Target Name="PragmaWarningDisablePrefixer" AfterTargets="MarkupCompilePass2">
<ItemGroup>
<GeneratedCSFiles Include="**\*.g.cs;**\*.g.i.cs" />
</ItemGroup>
<Message Text="CSFiles: @(GeneratedCSFiles->'&quot;%(Identity)&quot;')" />
<Exec Command="for %%f in (@(GeneratedCSFiles->'&quot;%(Identity)&quot;')) do echo #pragma warning disable &gt; %%f.temp &amp;&amp; type %%f | findstr /v /b &quot;#pragma&quot; &gt;&gt; %%f.temp &amp;&amp; move /y %%f.temp %%f &gt; NUL" />
</Target>
<!-- No-op to avoid build error when packing solution from commandline -->
<Target Name="Pack" />
</Project>

Просмотреть файл

@ -23,6 +23,7 @@ using System.Threading.Tasks;
using Microsoft.Toolkit.Uwp.Helpers;
using Microsoft.Toolkit.Uwp.Input.GazeInteraction;
using Microsoft.Toolkit.Uwp.SampleApp.Models;
using Microsoft.Toolkit.Uwp.UI;
using Microsoft.Toolkit.Uwp.UI.Animations;
using Microsoft.Toolkit.Uwp.UI.Controls;
using Microsoft.Toolkit.Uwp.UI.Media;
@ -118,7 +119,7 @@ namespace Microsoft.Toolkit.Uwp.SampleApp
#if !REMOTE_DOCS
_codeUrl = value;
#else
var regex = new Regex("^https://github.com/windows-toolkit/WindowsCommunityToolkit/(tree|blob)/(?<branch>.+?)/(?<path>.*)");
var regex = new Regex("^https://github.com/CommunityToolkit/WindowsCommunityToolkit/(tree|blob)/(?<branch>.+?)/(?<path>.*)");
var docMatch = regex.Match(value);
var branch = string.Empty;
@ -674,8 +675,9 @@ namespace Microsoft.Toolkit.Uwp.SampleApp
// TODO Reintroduce graph controls
// typeof(UserToPersonConverter)) // Search in Microsoft.Toolkit.Graph.Controls
ScrollItemPlacement.Default.GetType(), // Search in Microsoft.Toolkit.Uwp.UI
EasingType.Default.GetType(), // Microsoft.Toolkit.Uwp.UI.Animations
ImageBlendMode.Multiply.GetType(), // Search in Microsoft.Toolkit.Uwp.UI
ImageBlendMode.Multiply.GetType(), // Search in Microsoft.Toolkit.Uwp.UI.Media
Interaction.Enabled.GetType(), // Microsoft.Toolkit.Uwp.Input.GazeInteraction
DataGridGridLinesVisibility.None.GetType(), // Microsoft.Toolkit.Uwp.UI.Controls.DataGrid
GridSplitter.GridResizeDirection.Auto.GetType(), // Microsoft.Toolkit.Uwp.UI.Controls.Layout

Просмотреть файл

@ -23,7 +23,7 @@
<Assembly Name="*Application*" Dynamic="Required All" />
<!-- Add your application specific runtime directives here. -->
<Type Name="Windows.UI.Xaml.Controls.Border" Dynamic="Required Public" />
<!-- Fix for https://github.com/windows-toolkit/WindowsCommunityToolkit/issues/3883 -->
<!-- Fix for https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/3883 -->
<Type Name="Windows.UI.Xaml.Controls.TextBlock" Dynamic="Required Public" />
</Application>
</Directives>

Просмотреть файл

@ -1,4 +1,4 @@
For the latest info, [visit the wiki article here](https://github.com/windows-toolkit/WindowsCommunityToolkit/wiki/Sample-Development).
For the latest info, [visit the wiki article here](https://github.com/CommunityToolkit/WindowsCommunityToolkit/wiki/Sample-Development).
# How to add new samples
@ -92,7 +92,7 @@ Therefore, for any new control/extension, you should still have a simplified sni
## 4. For Events/Resource Templates: Have your sample page implement the **IXamlRendererListener** interface
This gets called whenever the template gets parsed (due to loading or user modification). Here you can use the [LogicalTree](https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/main/Microsoft.Toolkit.Uwp.UI/Extensions/Tree/LogicalTree.cs) extensions to grab named controls in the template and register their events. **Check for null first** as the developer may have removed the name from the element.
This gets called whenever the template gets parsed (due to loading or user modification). Here you can use the [LogicalTree](https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/main/Microsoft.Toolkit.Uwp.UI/Extensions/Tree/LogicalTree.cs) extensions to grab named controls in the template and register their events. **Check for null first** as the developer may have removed the name from the element.
```csharp
var markdownText = control.FindChild("MarkdownText") as MarkdownTextBlock;
@ -148,9 +148,9 @@ Select the category where you want your page to be listed and add the following
"Name": "AdaptiveGridView",
"Type": "AdaptiveGridViewPage",
"About": "The AdaptiveGridView control allows to present information within a Grid View perfectly adjusting the total display available space. It reacts to changes in the layout as well as the content so it can adapt to different form factors automatically. The number and the width of items are calculated based on the screen resolution in order to fully leverage the available screen space. The property ItemsHeight define the items fixed height and the property DesiredWidth sets the minimum width for the elements to add a new column.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls/TextToolbar",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls/TextToolbar",
"XamlCodeFile": "AdaptiveGridViewCode.bind",
"DocumentationUrl": "https://raw.githubusercontent.com/windows-toolkit/WindowsCommunityToolkit/main/docs/controls/AdaptiveGridView.md"
"DocumentationUrl": "https://raw.githubusercontent.com/CommunityToolkit/WindowsCommunityToolkit/main/docs/controls/AdaptiveGridView.md"
}
]
}
@ -159,7 +159,7 @@ Select the category where you want your page to be listed and add the following
## Thumbnail Images
> NOTE: If creating a new icon, follow the [Thumbnail Style Guide and templates](https://github.com/windows-toolkit/WindowsCommunityToolkit-design-assets)
> NOTE: If creating a new icon, follow the [Thumbnail Style Guide and templates](https://github.com/CommunityToolkit/WindowsCommunityToolkit-design-assets)
## Restricting Samples to Specific API Sets

Просмотреть файл

@ -1,4 +1,4 @@
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:behaviors="using:Microsoft.Toolkit.Uwp.UI.Behaviors"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

Просмотреть файл

@ -1,32 +1,9 @@
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ui="using:Microsoft.Toolkit.Uwp.UI"
mc:Ignorable="d">
<GridView x:Name="MyGridView"/>
<Page.Resources>
<DataTemplate x:Name="NormalTemplate">
<TextBlock Text="{Binding Title}" Foreground="Green"/>
</DataTemplate>
using Microsoft.Toolkit.Uwp.UI;
<DataTemplate x:Name="AlternateTemplate">
<TextBlock Text="{Binding Title}" Foreground="Red"/>
</DataTemplate>
</Page.Resources>
// Scrolling with index
await MyGridView.SmoothScrollIntoViewWithIndexAsync(index: int, itemPlacement: ScrollItemPlacement, disableAnimation: bool, scrollIfVisibile: bool, additionalHorizontalOffset: int, additionalVerticalOffset: int);
<Grid>
<ListView
x:Name="SampleListView"
Margin="12"
ItemTemplate="{StaticResource NormalTemplate}"
IsItemClickEnabled="True"
ui:ListViewExtensions.Command="{Binding SampleCommand}"
ui:ListViewExtensions.AlternateColor="#33AAAAAA"
ui:ListViewExtensions.AlternateItemTemplate="{StaticResource AlternateTemplate}"
ui:ListViewExtensions.ItemContainerStretchDirection="Both">
</ListView>
</Grid>
</Page>
// Scrolling with item
await MyGridView.SmoothScrollIntoViewWithItemAsync(item: object, itemPlacement: ScrollItemPlacement, disableAnimation: bool, scrollIfVisibile: bool, additionalHorizontalOffset: int, additionalVerticalOffset: int);

Просмотреть файл

@ -2,31 +2,68 @@
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:local="using:Microsoft.Toolkit.Uwp.SampleApp.SamplePages"
xmlns:ui="using:Microsoft.Toolkit.Uwp.UI"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Page.Resources>
<local:SampleCommand x:Key="SampleCommand" />
<DataTemplate x:Name="NormalTemplate">
<TextBlock Foreground="Green"
Text="{Binding Title}" />
<TextBlock Text="{Binding}" Foreground="Green" VerticalAlignment="Center" FontWeight="Bold"></TextBlock>
</DataTemplate>
<DataTemplate x:Name="AlternateTemplate">
<TextBlock Foreground="Red"
Text="{Binding Title}" />
<TextBlock Text="{Binding}" Foreground="Red" VerticalAlignment="Center" FontWeight="Bold"></TextBlock>
</DataTemplate>
</Page.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid x:Name="XamlRoot" Grid.Column="0" Margin="12">
<ListView x:Name="SampleListView"
ui:ListViewExtensions.AlternateColor="#33AAAAAA"
ui:ListViewExtensions.AlternateItemTemplate="{StaticResource AlternateTemplate}"
ui:ListViewExtensions.Command="{StaticResource SampleCommand}"
ui:ListViewExtensions.ItemContainerStretchDirection="Both"
IsItemClickEnabled="True"
ItemTemplate="{StaticResource NormalTemplate}" />
</Grid>
<ListView x:Name="SampleListView"
Margin="12"
ui:ListViewExtensions.AlternateColor="#33AAAAAA"
ui:ListViewExtensions.AlternateItemTemplate="{StaticResource AlternateTemplate}"
ui:ListViewExtensions.Command="{Binding SampleCommand}"
ui:ListViewExtensions.ItemContainerStretchDirection="Both"
IsItemClickEnabled="True"
ItemTemplate="{StaticResource NormalTemplate}" />
<StackPanel Grid.Column="1" Margin="5,10,10,0" Width="200">
<TextBlock Text="Smooth Scroll Settings" FontSize="{StaticResource TextStyleLargeFontSize}" Margin="0,0,0,10"/>
<TextBox x:Name="IndexInput"
Header="Index"
InputScope="Number"
Text="100" />
<ComboBox x:Name="ItemPlacementInput"
Header="Item Placement"
SelectedIndex="0">
<x:String>Default</x:String>
<x:String>Left</x:String>
<x:String>Top</x:String>
<x:String>Center</x:String>
<x:String>Right</x:String>
<x:String>Bottom</x:String>
</ComboBox>
<CheckBox x:Name="DisableAnimationInput"
Content="Disable Animation"
IsChecked="False" />
<CheckBox x:Name="ScrollIfVisibileInput"
Content="Scroll If Visible"
IsChecked="True" />
<TextBox x:Name="AdditionalHorizontalOffsetInput"
Header="Horizontal Offset"
InputScope="Number"
Text="0" />
<TextBox x:Name="AdditionalVerticalOffsetInput"
Header="Vertical Offset"
InputScope="Number"
Text="0" />
</StackPanel>
</Grid>
</Page>

Просмотреть файл

@ -3,9 +3,8 @@
// See the LICENSE file in the project root for more information.
using System;
using System.Collections.ObjectModel;
using System.Windows.Input;
using Microsoft.Toolkit.Uwp.SampleApp.Common;
using Microsoft.Toolkit.Uwp.SampleApp.Data;
using Microsoft.Toolkit.Uwp.UI;
using Windows.UI.Popups;
using Windows.UI.Xaml;
@ -15,29 +14,93 @@ namespace Microsoft.Toolkit.Uwp.SampleApp.SamplePages
{
public sealed partial class ListViewExtensionsPage : Page, IXamlRenderListener
{
private ListView sampleListView;
public ListViewExtensionsPage()
{
this.InitializeComponent();
Load();
}
public ICommand SampleCommand => new DelegateCommand<PhotoDataItem>(OnExecuteSampleCommand);
public async void OnXamlRendered(FrameworkElement control)
public void OnXamlRendered(FrameworkElement control)
{
var sampleListView = control.FindChild("SampleListView") as ListView;
sampleListView = control.FindChild("SampleListView") as ListView;
if (sampleListView != null)
{
sampleListView.ItemsSource = await new Data.PhotosDataSource().GetItemsAsync();
sampleListView.ItemsSource = GetOddEvenSource(201);
}
// Transfer Data Context so we can access SampleCommand
control.DataContext = this;
}
private async void OnExecuteSampleCommand(PhotoDataItem item)
private void Load()
{
await new MessageDialog($"You clicked {item.Title} via the 'ListViewExtensions.Command' binding", "Item Clicked").ShowAsync();
SampleController.Current.RegisterNewCommand("Start Smooth Scroll", (sender, args) =>
{
var index = int.TryParse(IndexInput.Text, out var i) ? i : 0;
var itemPlacement = ItemPlacementInput.SelectedItem switch
{
"Default" => ScrollItemPlacement.Default,
"Left" => ScrollItemPlacement.Left,
"Top" => ScrollItemPlacement.Top,
"Center" => ScrollItemPlacement.Center,
"Right" => ScrollItemPlacement.Right,
"Bottom" => ScrollItemPlacement.Bottom,
_ => ScrollItemPlacement.Default
};
var disableAnimation = DisableAnimationInput.IsChecked ?? false;
var scrollIfVisibile = ScrollIfVisibileInput.IsChecked ?? true;
var additionalHorizontalOffset = int.TryParse(AdditionalHorizontalOffsetInput.Text, out var ho) ? ho : 0;
var additionalVerticalOffset = int.TryParse(AdditionalVerticalOffsetInput.Text, out var vo) ? vo : 0;
sampleListView.SmoothScrollIntoViewWithIndexAsync(index, itemPlacement, disableAnimation, scrollIfVisibile, additionalHorizontalOffset, additionalVerticalOffset);
});
if (sampleListView != null)
{
sampleListView.ItemsSource = GetOddEvenSource(500);
}
}
private ObservableCollection<string> GetOddEvenSource(int count)
{
var oddEvenSource = new ObservableCollection<string>();
for (int number = 0; number < count; number++)
{
var item = (number % 2) == 0 ? $"{number} - Even" : $"{number} - Odd";
oddEvenSource.Add(item);
}
return oddEvenSource;
}
}
#pragma warning disable SA1402 // File may only contain a single class
internal class SampleCommand : ICommand
#pragma warning restore SA1402 // File may only contain a single class
{
event EventHandler ICommand.CanExecuteChanged
{
add { }
remove { }
}
public bool CanExecute(object parameter) => true;
public void Execute(object parameter)
{
if (parameter is string s)
{
OnExecuteSampleCommand(s);
}
}
private static async void OnExecuteSampleCommand(string item)
{
await new MessageDialog($"You clicked {item} via the 'ListViewExtensions.Command' binding", "Item Clicked").ShowAsync();
}
}
}

Просмотреть файл

@ -0,0 +1,30 @@
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="using:Microsoft.Toolkit.Uwp.SampleApp.SamplePages"
xmlns:ui="using:Microsoft.Toolkit.Uwp.UI"
mc:Ignorable="d">
<Page.Resources>
<local:SampleCommand x:Key="SampleCommand" />
<DataTemplate x:Name="NormalTemplate">
<TextBlock Text="{Binding}" Foreground="Green" VerticalAlignment="Center" FontWeight="Bold"></TextBlock>
</DataTemplate>
<DataTemplate x:Name="AlternateTemplate">
<TextBlock Text="{Binding}" Foreground="Red" VerticalAlignment="Center" FontWeight="Bold"></TextBlock>
</DataTemplate>
</Page.Resources>
<ListView
x:Name="SampleListView"
ItemTemplate="{StaticResource NormalTemplate}"
IsItemClickEnabled="True"
ui:ListViewExtensions.Command="{StaticResource SampleCommand}"
ui:ListViewExtensions.AlternateColor="#33AAAAAA"
ui:ListViewExtensions.AlternateItemTemplate="{StaticResource AlternateTemplate}"
ui:ListViewExtensions.ItemContainerStretchDirection="Both">
</ListView>
</Page>

Просмотреть файл

@ -376,11 +376,11 @@ To add an image, it is almost like a link. You just need to add a \! before.
So inline image syntax looks like this:
>\!\[Helpers Image](https\://raw.githubusercontent.com/windows-toolkit/WindowsCommunityToolkit/main/Microsoft.Toolkit.Uwp.SampleApp/Assets/Helpers.png)
>\!\[Helpers Image](https\://raw.githubusercontent.com/CommunityToolkit/WindowsCommunityToolkit/main/Microsoft.Toolkit.Uwp.SampleApp/Assets/Helpers.png)
which renders in:
![Helpers Image](https://raw.githubusercontent.com/windows-toolkit/WindowsCommunityToolkit/main/Microsoft.Toolkit.Uwp.SampleApp/Assets/Helpers.png)
![Helpers Image](https://raw.githubusercontent.com/CommunityToolkit/WindowsCommunityToolkit/main/Microsoft.Toolkit.Uwp.SampleApp/Assets/Helpers.png)
Rendering Images is now supported through prefix. use property **UriPrefix**
@ -412,11 +412,11 @@ which renders in:
MarkdownTextblock supports links wrapped with Images.
>\[!\[image](https\://raw.githubusercontent.com/windows-toolkit/WindowsCommunityToolkit/main/build/nuget.png)](https\://docs.microsoft.com/windows/uwpcommunitytoolkit/)
>\[!\[image](https\://raw.githubusercontent.com/CommunityToolkit/WindowsCommunityToolkit/main/build/nuget.png)](https\://docs.microsoft.com/windows/uwpcommunitytoolkit/)
will render into
[![image](https://raw.githubusercontent.com/windows-toolkit/WindowsCommunityToolkit/main/build/nuget.png)](https://docs.microsoft.com/windows/uwpcommunitytoolkit/)
[![image](https://raw.githubusercontent.com/CommunityToolkit/WindowsCommunityToolkit/main/build/nuget.png)](https://docs.microsoft.com/windows/uwpcommunitytoolkit/)
and when clicked will go to the Linked Page.
@ -425,7 +425,7 @@ MarkdownTextBlock also supports Reference based links.
```
[![image][1]][2]
[1]:https://raw.githubusercontent.com/windows-toolkit/WindowsCommunityToolkit/main/build/nuget.png
[1]:https://raw.githubusercontent.com/CommunityToolkit/WindowsCommunityToolkit/main/build/nuget.png
[2]:https://docs.microsoft.com/windows/uwpcommunitytoolkit/
```
@ -434,7 +434,7 @@ will render into
[![image][1]][2]
[1]:https://raw.githubusercontent.com/windows-toolkit/WindowsCommunityToolkit/main/build/nuget.png
[1]:https://raw.githubusercontent.com/CommunityToolkit/WindowsCommunityToolkit/main/build/nuget.png
[2]:https://docs.microsoft.com/windows/uwpcommunitytoolkit/
*****

Просмотреть файл

@ -1,4 +1,4 @@
<Page
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"

Просмотреть файл

@ -1,4 +1,4 @@
<Page x:Class="Microsoft.Toolkit.Uwp.SampleApp.SamplePages.MetadataControlPage"
<Page x:Class="Microsoft.Toolkit.Uwp.SampleApp.SamplePages.MetadataControlPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"

Просмотреть файл

@ -8,7 +8,7 @@
"Type": "TextToolbarPage",
"Subcategory": "Menus and Toolbars",
"About": "A Toolbar for Editing Text attached to a RichEditBox. It can format RTF and Markdown, or use a Custom Formatter, and specify your own Formatter with Buttons and Actions.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/TextToolbar",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/TextToolbar",
"XamlCodeFile": "TextToolbar.bind",
"CodeFile": "TextToolbarCode.bind",
"Icon": "/SamplePages/TextToolbar/TextToolbar.png",
@ -19,7 +19,7 @@
"Type": "DataGridPage",
"Subcategory": "Layout",
"About": "Control that presents data in a customizable table of rows and columns.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid",
"XamlCodeFile": "DataGridCode.bind",
"Icon": "/SamplePages/DataGrid/DataGrid.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/DataGrid.md"
@ -29,7 +29,7 @@
"Type": "CarouselPage",
"Subcategory": "Layout",
"About": "Presents items in a carousel control. It reacts to changes in the layout as well as the content so it can adapt to different form factors automatically.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/Carousel",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/Carousel",
"XamlCodeFile": "CarouselCode.bind",
"Icon": "/SamplePages/Carousel/Carousel.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/Carousel.md"
@ -38,7 +38,7 @@
"Name": "ColorPicker",
"Subcategory": "Input",
"About": "An improved color picker control providing more options to select colors.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Input/ColorPicker",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Input/ColorPicker",
"XamlCodeFile": "/SamplePages/ColorPicker/ColorPickerXaml.bind",
"Icon": "/SamplePages/ColorPicker/ColorPicker.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/ColorPicker.md"
@ -47,7 +47,7 @@
"Name": "ColorPickerButton",
"Subcategory": "Input",
"About": "A color picker within a flyout opened by pressing a dropdown button containing the selected color.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Input/ColorPicker",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Input/ColorPicker",
"XamlCodeFile": "/SamplePages/ColorPicker/ColorPickerButtonXaml.bind",
"Icon": "/SamplePages/ColorPicker/ColorPicker.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/ColorPicker.md"
@ -57,7 +57,7 @@
"Type": "AdaptiveGridViewPage",
"Subcategory": "Layout",
"About": "Presents items in a evenly-spaced set of columns to fill the total available display space. It reacts to changes in the layout as well as the content so it can adapt to different form factors automatically.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/AdaptiveGridView",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/AdaptiveGridView",
"XamlCodeFile": "AdaptiveGridViewCode.bind",
"Icon": "/SamplePages/AdaptiveGridView/AdaptiveGridView.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/AdaptiveGridView.md"
@ -67,7 +67,7 @@
"Type": "UniformGridPage",
"Subcategory": "Layout",
"About": "Presents items in a evenly-spaced set of rows or columns to fill the total available display space. It reacts to changes in the layout as well as the content so it can adapt to different form factors automatically.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/UniformGrid",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/UniformGrid",
"XamlCodeFile": "UniformGridXaml.bind",
"Icon": "/SamplePages/UniformGrid/UniformGrid.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/UniformGrid.md"
@ -76,7 +76,7 @@
"Name": "RangeSelector",
"Subcategory": "Input",
"About": "The RangeSelector is a \"double slider\" control for range values.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Input/RangeSelector",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Input/RangeSelector",
"XamlCodeFile": "/SamplePages/RangeSelector/RangeSelectorCode.bind",
"Icon": "/SamplePages/RangeSelector/RangeSelector.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/RangeSelector.md"
@ -86,7 +86,7 @@
"Type": "ImageExPage",
"Subcategory": "Media",
"About": "Images are downloaded asynchronously showing a load indicator. Source images are then stored in the App local cache to preserve resources and load time.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/ImageEx",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/ImageEx",
"XamlCodeFile": "ImageExCode.bind",
"Icon": "/SamplePages/ImageEx/ImageEx.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/ImageEx.md"
@ -96,7 +96,7 @@
"Type": "ListDetailsViewPage",
"Subcategory": "Layout",
"About": "The ListDetailsView control allows the user to implement the List/Details design pattern.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/ListDetailsView",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/ListDetailsView",
"XamlCodeFile": "ListDetailsView.bind",
"CodeFile": "ListDetailsViewCode.bind",
"Icon": "/SamplePages/ListDetailsView/ListDetailsView.png",
@ -107,7 +107,7 @@
"Type": "MarkdownTextBlockPage",
"Subcategory": "Input",
"About": "An efficient and extensible control that can parse and render markdown.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Markdown/MarkdownTextBlock",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Markdown/MarkdownTextBlock",
"XamlCodeFile": "MarkdownTextBlock.bind",
"CodeFile": "MarkdownTextBlockCode.bind",
"Icon": "/SamplePages/MarkdownTextBlock/MarkdownTextBlock.png",
@ -118,7 +118,7 @@
"Type": "RadialGaugePage",
"Subcategory": "Status and Info",
"About": "The radial gauge displays a value within a range, using a needle on a circular face.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Input/RadialGauge",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Input/RadialGauge",
"XamlCodeFile": "RadialGaugeCode.bind",
"Icon": "/SamplePages/RadialGauge/RadialGauge.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/RadialGauge.md"
@ -128,7 +128,7 @@
"Type": "RadialProgressBarPage",
"Subcategory": "Status and Info",
"About": "The radial progress bar displays progress as a circle getting filled.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/RadialProgressBar",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/RadialProgressBar",
"XamlCodeFile": "RadialProgressBarCode.bind",
"Icon": "/SamplePages/RadialProgressBar/RadialProgressBar.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/RadialProgressBar.md"
@ -138,7 +138,7 @@
"Type": "MetadataControlPage",
"Subcategory": "Status and Info",
"About": "The control displays a list of metadata separated by bullets. The entries can either be strings or commands.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/master/Microsoft.Toolkit.Uwp.UI.Controls/MetadataControl",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/master/Microsoft.Toolkit.Uwp.UI.Controls/MetadataControl",
"XamlCodeFile": "MetadataControlCode.bind",
"Icon": "/SamplePages/MetadataControl/MetadataControl.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/MetadataControl.md"
@ -148,7 +148,7 @@
"Type": "RotatorTilePage",
"Subcategory": "Media",
"About": "RotatorTile is an ItemsControl that rotates through a set of items one-by-one. It enables you to show multiple items of data in a live-tile like way.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/RotatorTile",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/RotatorTile",
"XamlCodeFile": "RotatorTileCode.bind",
"Icon": "/SamplePages/RotatorTile/RotatorTile.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/RotatorTile.md"
@ -158,7 +158,7 @@
"Type": "BladePage",
"Subcategory": "Layout",
"About": "BladeView provides a horizontal collection of blades for master-detail scenarios. The control is based on the experience demonstrated by the Azure Portal.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/BladeView",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/BladeView",
"XamlCodeFile": "BladeCode.bind",
"Icon": "/SamplePages/BladeView/BladeView.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/BladeView.md"
@ -168,7 +168,7 @@
"Type": "ScrollHeaderPage",
"Subcategory": "Layout",
"About": "A UI control that works as a ListView or GridView header control with quick return, sticky and fade behavior.",
"CodeUrl" : "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Behaviors/Headers",
"CodeUrl" : "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Behaviors/Headers",
"XamlCodeFile": "ScrollHeaderCode.bind",
"Icon": "/SamplePages/ScrollHeader/ScrollHeader.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/behaviors/HeaderBehaviors.md"
@ -178,7 +178,7 @@
"Type": "GridSplitterPage",
"Subcategory": "Layout",
"About": "GridSplitter represents the control that redistributes space between columns or rows of a Grid control.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/GridSplitter",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/GridSplitter",
"XamlCodeFile": "GridSplitter.bind",
"Icon": "/SamplePages/GridSplitter/GridSplitter.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/GridSplitter.md"
@ -188,7 +188,7 @@
"Type": "DropShadowPanelPage",
"Subcategory": "Media",
"About": "DropShadowPanel contol allows the creation of a DropShadow for any Xaml FrameworkElement in markup.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/DropShadowPanel",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/DropShadowPanel",
"XamlCodeFile": "DropShadowPanelXaml.bind",
"Icon": "/SamplePages/DropShadowPanel/DropShadowPanel.png",
"BadgeUpdateVersionRequired": "Anniversary Update required",
@ -199,7 +199,7 @@
"Type": "LoadingPage",
"Subcategory": "Status and Info",
"About": "LoadingControl helps to show content with animation to the user while the app is doing some calculation.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/Loading",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/Loading",
"XamlCodeFile": "LoadingCode.bind",
"Icon": "/SamplePages/Loading/Loading.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/Loading.md"
@ -209,7 +209,7 @@
"Type": "ExpanderPage",
"Subcategory": "Layout",
"About": "Expander control allows user to show/hide content based on a boolean state.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/Expander",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/Expander",
"XamlCodeFile": "ExpanderXaml.bind",
"Icon": "/SamplePages/Expander/Expander.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/Expander.md"
@ -219,7 +219,7 @@
"Type": "TileControlPage",
"Subcategory": "Layout",
"About": "A ContentControl that show an image repeated many times.The control can be synchronized with a Scrollviewer and animated easily",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/TileControl",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/TileControl",
"XamlCodeFile": "TileControl.bind",
"Icon": "/SamplePages/TileControl/TileControl.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/TileControl.md"
@ -229,7 +229,7 @@
"Type": "WrapPanelPage",
"Subcategory": "Layout",
"About": "The WrapPanel Control positions child elements in sequential position from left to right, breaking content to the next line at the edge of the containing box.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/WrapPanel",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/WrapPanel",
"XamlCodeFile": "WrapPanel.bind",
"Icon": "/SamplePages/WrapPanel/WrapPanel.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/WrapPanel.md"
@ -239,7 +239,7 @@
"Type": "WrapLayoutPage",
"Subcategory": "Layout - ItemsRepeater",
"About": "The WrapLayout virtualizes child elements in sequential position from left to right, breaking content to the next line at the edge of the containing box.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/WrapLayout",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/WrapLayout",
"XamlCodeFile": "WrapLayout.bind",
"Icon": "/SamplePages/WrapLayout/WrapLayout.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/layout/WrapLayout.md"
@ -249,7 +249,7 @@
"Type": "OrbitViewPage",
"Subcategory": "Layout",
"About": "The OrbitView Control positions items in a circle around a center element and supports orbits and anchors.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/OrbitView",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/OrbitView",
"XamlCodeFile": "OrbitViewXaml.bind",
"Icon": "/SamplePages/OrbitView/OrbitView.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/OrbitView.md"
@ -261,7 +261,7 @@
"About": "This control will be removed in a future major release. Please use the MenuBar control from the WinUI Library instead.",
"BadgeUpdateVersionRequired": "DEPRECATED",
"DeprecatedWarning": "This control will be removed in a future major release. Please use the MenuBar control from the WinUI Library instead.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/Menu",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/Menu",
"XamlCodeFile": "Menu.bind",
"Icon": "/SamplePages/Menu/Menu.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/Menu.md"
@ -271,7 +271,7 @@
"Type": "InAppNotificationPage",
"Subcategory": "Status and Info",
"About": "The In App Notification control offers the ability to show local notifications in your application.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/InAppNotification",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/InAppNotification",
"XamlCodeFile": "InAppNotificationXaml.bind",
"CodeFile": "InAppNotificationCode.bind",
"Icon": "/SamplePages/InAppNotification/InAppNotification.png",
@ -282,7 +282,7 @@
"Type": "DockPanelPage",
"Subcategory": "Layout",
"About": "Defines an area where you can arrange child elements either horizontally or vertically, relative to each other.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/DockPanel",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/DockPanel",
"XamlCodeFile": "DockPanel.bind",
"Icon": "/SamplePages/DockPanel/DockPanel.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/DockPanel.md"
@ -292,7 +292,7 @@
"Type": "HeaderedContentControlPage",
"Subcategory": "Layout",
"About": "Allows content to be displayed with a specified header.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/HeaderedContentControl",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/HeaderedContentControl",
"XamlCodeFile": "HeaderedContentControlXaml.bind",
"Icon": "/SamplePages/HeaderedContentControl/HeaderedContentControl.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/HeaderedContentControl.md"
@ -302,7 +302,7 @@
"Type": "HeaderedItemsControlPage",
"Subcategory": "Layout",
"About": "Allows items to be displayed with a specified header.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/HeaderedItemsControl",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/HeaderedItemsControl",
"XamlCodeFile": "HeaderedItemsControlXaml.bind",
"Icon": "/SamplePages/HeaderedItemsControl/HeaderedItemsControl.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/HeaderedItemsControl.md"
@ -312,7 +312,7 @@
"Type": "StaggeredPanelPage",
"Subcategory": "Layout",
"About": "The StaggeredPanel allows for layout of items in a column approach where an item will be added to whichever column has used the least amount of space.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/StaggeredPanel",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/StaggeredPanel",
"XamlCodeFile": "StaggeredPanel.bind",
"Icon": "/SamplePages/StaggeredPanel/StaggeredPanel.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/StaggeredPanel.md"
@ -322,7 +322,7 @@
"Type": "StaggeredLayoutPage",
"Subcategory": "Layout - ItemsRepeater",
"About": "The StaggeredLayout virtualizes items in a column approach where an item will be added to whichever column has used the least amount of space.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/StaggeredLayout",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/StaggeredLayout",
"XamlCodeFile": "StaggeredLayout.bind",
"Icon": "/SamplePages/StaggeredLayout/StaggeredLayout.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/layout/StaggeredLayout.md"
@ -332,7 +332,7 @@
"Type": "LayoutTransformControlPage",
"Subcategory": "Layout",
"About": "Control that implements support for transformations as if applied by LayoutTransform.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/LayoutTransformControl",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Layout/LayoutTransformControl",
"XamlCodeFile": "LayoutTransformControlXaml.bind",
"Icon": "/SamplePages/LayoutTransformControl/LayoutTransformControl.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/LayoutTransformControl.md"
@ -342,7 +342,7 @@
"Type": "CameraPreviewPage",
"Subcategory": "Media",
"About": "Allows to easily preview video from available camera frame source groups and also get realtime video frames/ software bitmaps from the selected source.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/CameraPreview",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/CameraPreview",
"XamlCodeFile": "CameraPreviewXaml.bind",
"CodeFile": "CameraPreviewCode.bind",
"Icon": "/SamplePages/CameraPreview/CameraPreview.png",
@ -355,7 +355,7 @@
"Type": "InfiniteCanvasPage",
"Subcategory": "Media",
"About": "InfiniteCanvas is a canvas that supports Infinite Scrolling, Ink, Text, Format Text, Zoom in/out, Redo, Undo, Export canvas data, Import canvas data.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Media/InfiniteCanvas",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Media/InfiniteCanvas",
"XamlCodeFile": "InfiniteCanvas.bind",
"Icon": "/SamplePages/InfiniteCanvas/InfiniteCanvas.png",
"ApiCheck": "Windows.UI.Xaml.Controls.ColorPicker",
@ -367,7 +367,7 @@
"Type": "RemoteDevicePickerControlPage",
"Subcategory": "Input",
"About": "Remote Device Picker Control for Project Rome.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Input/RemoteDevicePicker",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Input/RemoteDevicePicker",
"CodeFile": "RemoteDevicePickerCode.bind",
"Icon": "/SamplePages/RemoteDevicePicker/RemoteDevicePicker.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/RemoteDevicePicker.md"
@ -377,7 +377,7 @@
"Type": "ImageCropperPage",
"Subcategory": "Input",
"About": "ImageCropper control allows user to crop image freely.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Media/ImageCropper",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Media/ImageCropper",
"XamlCodeFile": "ImageCropperXaml.bind",
"CodeFile": "ImageCropperCode.bind",
"Icon": "/SamplePages/ImageCropper/ImageCropper.png",
@ -388,7 +388,7 @@
"Type": "EyedropperPage",
"Subcategory": "Input",
"About": "Eyedropper can pick up a color from anywhere in your application.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Media/Eyedropper",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Media/Eyedropper",
"XamlCodeFile": "EyedropperXaml.bind",
"CodeFile": "EyedropperCode.bind",
"Icon": "/SamplePages/Eyedropper/Eyedropper.png",
@ -398,7 +398,7 @@
"Name": "LoginButton",
"Subcategory": "Graph",
"About": "The LoginButton control is a button and flyout to facilitate Microsoft identity platform authentication for AAD or MSA accounts.",
"CodeUrl": "https://github.com/windows-toolkit/Graph-Controls/tree/master/Microsoft.Toolkit.Graph.Controls/Controls/LoginButton",
"CodeUrl": "https://github.com/CommunityToolkit/Graph-Controls/tree/master/Microsoft.Toolkit.Graph.Controls/Controls/LoginButton",
/*"XamlCodeFile": "/SamplePages/Graph/LoginButtonXaml.bind",*/
"Icon": "/SamplePages/Graph/LoginButton.png",
"BadgeUpdateVersionRequired": "PREVIEW",
@ -409,7 +409,7 @@
"Name": "PersonView",
"Subcategory": "Graph",
"About": "The PersonView control is used to display a person or contact by using their photo, name, and/or email address from Microsoft Graph.",
"CodeUrl": "https://github.com/windows-toolkit/Graph-Controls/tree/master/Microsoft.Toolkit.Graph.Controls/Controls/PersonView",
"CodeUrl": "https://github.com/CommunityToolkit/Graph-Controls/tree/master/Microsoft.Toolkit.Graph.Controls/Controls/PersonView",
/*"XamlCodeFile": "/SamplePages/Graph/PersonViewXaml.bind",*/
"Icon": "/SamplePages/Graph/PersonView.png",
"BadgeUpdateVersionRequired": "PREVIEW",
@ -420,7 +420,7 @@
"Name": "PeoplePicker",
"Subcategory": "Graph",
"About": "The PeoplePicker Control searchs for people and renders the list of results from Microsoft Graph. By default, the component will search for all people.",
"CodeUrl": "https://github.com/windows-toolkit/Graph-Controls/tree/master/Microsoft.Toolkit.Graph.Controls/Controls/PeoplePicker",
"CodeUrl": "https://github.com/CommunityToolkit/Graph-Controls/tree/master/Microsoft.Toolkit.Graph.Controls/Controls/PeoplePicker",
/*"XamlCodeFile": "/SamplePages/Graph/PeoplePickerXaml.bind",*/
"Icon": "/SamplePages/Graph/PeoplePicker.png",
"BadgeUpdateVersionRequired": "PREVIEW",
@ -432,7 +432,7 @@
"Type": "AlignmentGridPage",
"Subcategory": "Developer",
"About": "AlignmentGrid is used to display a grid to help aligning controls.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.DeveloperTools/AlignmentGrid",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.DeveloperTools/AlignmentGrid",
"XamlCodeFile": "AlignmentGridXaml.bind",
"Icon": "/SamplePages/AlignmentGrid/AlignmentGrid.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/developer-tools/AlignmentGrid.md"
@ -442,7 +442,7 @@
"Type": "FocusTrackerPage",
"Subcategory": "Developer",
"About": "FocusTracker can be used to display information about the current focused XAML element.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.DeveloperTools/FocusTracker",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.DeveloperTools/FocusTracker",
"XamlCodeFile": "FocusTrackerXaml.bind",
"Icon": "/SamplePages/FocusTracker/FocusTracker.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/developer-tools/FocusTracker.md"
@ -452,7 +452,7 @@
"Type": "TokenizingTextBoxPage",
"Subcategory": "Input",
"About": "A text input control that makes suggestions and keeps track of data token items",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Input/TokenizingTextBox",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Input/TokenizingTextBox",
"CodeFile": "TokenizingTextBoxCode.bind",
"XamlCodeFile": "TokenizingTextBoxXaml.bind",
"Icon": "/SamplePages/TokenizingTextBox/TokenizingTextBox.png",
@ -462,7 +462,7 @@
"Name": "TabbedCommandBar",
"Subcategory": "Menus and Toolbars",
"About": "A control for displaying multiple CommandBars in the same space, like Microsoft Office's ribbon.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/TabbedCommandBar",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Core/TabbedCommandBar",
"XamlCodeFile": "/SamplePages/TabbedCommandBar/TabbedCommandBar.bind",
"Icon": "/SamplePages/TabbedCommandBar/TabbedCommandBar.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/TabbedCommandBar.md"
@ -471,7 +471,7 @@
"Name": "SwitchPresenter",
"Subcategory": "Layout",
"About": "The SwitchPresenter is a ContentPresenter which can allow a developer to mimic a switch statement within XAML.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/SwitchPresenter",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Controls.Primitives/SwitchPresenter",
"XamlCodeFile": "/SamplePages/Primitives/SwitchPresenter.bind",
"Icon": "/SamplePages/Primitives/SwitchPresenter.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/SwitchPresenter.md"
@ -487,7 +487,7 @@
"Subcategory": "Activities",
"About": "Activity for Animations to Start another Animation",
"Icon": "/Assets/Helpers.png",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Activities",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Activities",
"XamlCodeFile": "/SamplePages/Animations/Activities/StartAnimationActivity.bind",
"CodeFile": "/SamplePages/Animations/Activities/StartAnimationActivityCode.bind",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/animations/AnimationSet.md"
@ -497,7 +497,7 @@
"Subcategory": "Activities",
"Icon": "/Assets/Helpers.png",
"About": "Activity chaining Actions from the Behaviors package into an Animation schedule.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Behaviors/Animations",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Behaviors/Animations",
"CodeFile": "/SamplePages/Animations/Activities/InvokeActionsActivityCode.bind",
"XamlCodeFile": "/SamplePages/Animations/Activities/InvokeActionsActivity.bind",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/animations/AnimationSet.md"
@ -506,7 +506,7 @@
"Name": "Fade",
"Subcategory": "Behavior",
"About": "Opacity of XAML elements using composition animations",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Default",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Default",
"CodeFile": "/SamplePages/Animations/Effects/FadeBehaviorCode.bind",
"XamlCodeFile": "/SamplePages/Animations/Effects/FadeBehaviorXaml.bind",
"Icon": "/SamplePages/Animations/Effects/FadeBehavior.png",
@ -516,7 +516,7 @@
"Name": "Scale",
"Subcategory": "Behavior",
"About": "Scale of XAML elements using composition",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Default",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Default",
"CodeFile": "/SamplePages/Animations/Behaviors/ScaleBehaviorCode.bind",
"XamlCodeFile": "/SamplePages/Animations/Behaviors/ScaleBehaviorXaml.bind",
"Icon": "/SamplePages/Animations/Behaviors/ScaleBehavior.png",
@ -526,7 +526,7 @@
"Name": "Offset",
"Subcategory": "Behavior",
"About": "Offset of XAML elements using composition",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Default",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Default",
"CodeFile": "/SamplePages/Animations/Behaviors/OffsetBehaviorCode.bind",
"XamlCodeFile": "/SamplePages/Animations/Behaviors/OffsetBehaviorXaml.bind",
"Icon": "/SamplePages/Animations/Behaviors/OffsetBehavior.png",
@ -536,7 +536,7 @@
"Name": "Rotate",
"Subcategory": "Behavior",
"About": "Rotation on XAML elements using composition",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Default",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Default",
"CodeFile": "/SamplePages/Animations/Behaviors/RotateBehaviorCode.bind",
"XamlCodeFile": "/SamplePages/Animations/Behaviors/RotateBehaviorXaml.bind",
"Icon": "/SamplePages/Animations/Behaviors/RotateBehavior.png",
@ -546,7 +546,7 @@
"Name": "Blur",
"Subcategory": "Behavior",
"About": "Blur XAML elements using composition",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Default",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Default",
"CodeFile": "/SamplePages/Animations/Behaviors/BlurBehaviorCode.bind",
"XamlCodeFile": "/SamplePages/Animations/Behaviors/BlurBehaviorXaml.bind",
"Icon": "/SamplePages/Animations/Behaviors/BlurBehavior.png",
@ -557,7 +557,7 @@
"Name": "Saturation",
"Subcategory": "Behavior",
"About": "Saturate XAML elements using composition",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Default",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Default",
"CodeFile": "/SamplePages/Animations/Behaviors/SaturationBehaviorCode.bind",
"XamlCodeFile": "/SamplePages/Animations/Behaviors/SaturationBehaviorXaml.bind",
"Icon": "/SamplePages/Animations/Behaviors/SaturationBehavior.png",
@ -569,7 +569,7 @@
"Type": "FadeHeaderBehaviorPage",
"Subcategory": "Effect",
"About": "Fade ListView and GridView Headers",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Default",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/Xaml/Default",
"CodeFile": "FadeHeaderBehaviorCode.bind",
"XamlCodeFile": "FadeHeaderBehaviorXaml.bind",
"Icon": "/SamplePages/FadeHeader/FadeHeaderBehavior.png",
@ -581,14 +581,14 @@
"Subcategory": "Effect",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/animations/Lottie.md",
"CodeUrl": "https://github.com/windows-toolkit/Lottie-Windows"
"CodeUrl": "https://github.com/CommunityToolkit/Lottie-Windows"
},
{
"Name": "ItemsReorderAnimation",
"Type": "ItemsReorderAnimationPage",
"Subcategory": "Effect",
"About": "Animates items of a grid or list control when the size changes",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations",
"XamlCodeFile": "ItemsReorderAnimation.bind",
"Icon": "/SamplePages/ItemsReorderAnimation/ItemsReorderAnimation.png",
"BadgeUpdateVersionRequired": "Anniversary Update required",
@ -599,7 +599,7 @@
"Subcategory": "Effect",
"About": "Effects from the Media package that can be animated from an AnimationSet schedule.",
"Icon": "/SamplePages/Animations/Effects/EffectAnimations.png",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Animations",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Animations",
"XamlCodeFile": "/SamplePages/Animations/Effects/EffectAnimations.bind",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/animations/AnimationSet.md"
},
@ -608,7 +608,7 @@
"Type": "ImplicitAnimationsPage",
"Subcategory": "Effect",
"About": "Attached properties to enable Implicit animations (including Show and Hide animations) through XAML",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations",
"Icon": "/SamplePages/Implicit Animations/ImplicitAnimations.png",
"XamlCodeFile": "ImplicitAnimationsCode.bind",
"BadgeUpdateVersionRequired": "Creators Update required",
@ -619,7 +619,7 @@
"Type": "ConnectedAnimationsPage",
"Subcategory": "Effect",
"About": "Attached properties to enable Connected animations through XAML",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/ConnectedAnimations",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Animations/ConnectedAnimations",
"XamlCodeFile": "ConnectedAnimationsCode.bind",
"DisableXamlEditorRendering": true,
"Icon": "/SamplePages/Connected Animations/ConnectedAnimations.png",
@ -639,7 +639,7 @@
"BadgeUpdateVersionRequired": "PREVIEW",
"DeprecatedWarning": "The Graph Providers are in preview. Find out more here: https://aka.ms/wgt",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/graph/providers/InteractiveProviderBehavior.md",
"CodeUrl": "https://github.com/windows-toolkit/Graph-Controls"
"CodeUrl": "https://github.com/CommunityToolkit/Graph-Controls"
}
]
},
@ -652,7 +652,7 @@
"Type": "ImageCachePage",
"Subcategory": "Data",
"About": "The ImageCache allows persistence of images with an option to use in-memory storage.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Cache/ImageCache.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Cache/ImageCache.cs",
"CodeFile": "ImageCacheCode.bind",
"XamlCodeFile": "ImageCacheXaml.bind",
"Icon": "/SamplePages/ImageCache/ImageCache.png",
@ -663,7 +663,7 @@
"Type": "ObjectStoragePage",
"Subcategory": "Systems",
"About": "The Object Storage helper allows you to easily read and save objects in your application, both locally or on every device (roaming).",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp/Helpers/ObjectStorage",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp/Helpers/ObjectStorage",
"CodeFile": "ObjectStorageCode.bind",
"Icon": "/SamplePages/Object Storage/ObjectStorage.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/ObjectStorage.md"
@ -673,7 +673,7 @@
"Type": "IncrementalLoadingCollectionPage",
"Subcategory": "Data",
"About": "Allows to create collections that can be loaded incrementally, as user requests more items in the view. This type of collections can be bound to controls like GridView and ListView.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp/IncrementalLoadingCollection",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp/IncrementalLoadingCollection",
"CodeFile": "IncrementalLoadingCollectionCode.bind",
"Icon": "/SamplePages/Incremental Loading Collection/icon.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/IncrementalLoadingCollection.md"
@ -683,7 +683,7 @@
"Type": "BackgroundTaskHelperPage",
"Subcategory": "Systems",
"About": "Allows easy registration and maintenance of background task",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp/Helpers/BackgroundTaskHelper.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp/Helpers/BackgroundTaskHelper.cs",
"CodeFile": "BackgroundTaskHelperCode.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/BackgroundTaskHelper.md"
@ -693,7 +693,7 @@
"Type": "NetworkHelperPage",
"Subcategory": "Systems",
"About": "The NetworkHelper class is used to determine whether the app has Internet, and if it is on a metered Internet connection",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.Connectivity/Network",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.Connectivity/Network",
"CodeFile": "NetworkHelperCode.bind",
"Icon": "/SamplePages/NetworkHelper/NetworkHelper.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/NetworkHelper.md"
@ -703,7 +703,7 @@
"Type": "BluetoothLEHelperPage",
"Subcategory": "Systems",
"About": "The Bluetooth LE helper class is used to connect and interact with bluetooth LE devices.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.Connectivity/BluetoothLEHelper",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.Connectivity/BluetoothLEHelper",
"CodeFile": "BluetoothLEHelperCode.bind",
"Icon": "/SamplePages/BluetoothLEHelper/BluetoothLEHelper.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/BluetoothLEHelper.md",
@ -714,7 +714,7 @@
"Type": "SystemInformationPage",
"Subcategory": "Systems",
"About": "The SystemInformation class provides easy access to some of system/app/device information",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp/Helpers/SystemInformation.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp/Helpers/SystemInformation.cs",
"CodeFile": "SystemInformationCode.bind",
"Icon": "/SamplePages/SystemInformation/SystemInformation.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/SystemInformation.md"
@ -724,7 +724,7 @@
"Type": "PrintHelperPage",
"Subcategory": "Systems",
"About": "Allows to easily print XAML controls",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp/Helpers/PrintHelper",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp/Helpers/PrintHelper",
"CodeFile": "PrintHelperCode.bind",
"XamlCodeFile": "PrintHelperXaml.bind",
"Icon": "/SamplePages/PrintHelper/PrintHelper.png",
@ -735,7 +735,7 @@
"Type": "DispatcherQueueHelperPage",
"Subcategory": "Developer",
"About": "Allows easy interaction with Windows Runtime message dispatcher queue for multi-threaded scenario (I.E: Run code on UI thread).",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp/Extensions/DispatcherQueueExtensions.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp/Extensions/DispatcherQueueExtensions.cs",
"CodeFile": "DispatcherQueueHelperCode.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/extensions/DispatcherQueueExtensions.md"
@ -745,7 +745,7 @@
"Type": "AdvancedCollectionViewPage",
"Subcategory": "Data",
"About": "Allows you to easily sort and filter your collections before displaying them.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/AdvancedCollectionView",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/AdvancedCollectionView",
"CodeFile": "AdvancedCollectionView.bind",
"Icon": "/SamplePages/AdvancedCollectionView/AdvancedCollectionView.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/AdvancedCollectionView.md"
@ -755,7 +755,7 @@
"Type": "ObservableGroupPage",
"Subcategory": "Data",
"About": "Allows you to easily create observable grouped collections.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit/Collections",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit/Collections",
"CodeFile": "ObservableGroup.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/collections/ObservableGroups.md"
@ -765,7 +765,7 @@
"Type": "CameraHelperPage",
"Subcategory": "Systems",
"About": "Allows to easily get camera frame sources available for media capture to preview video and get real time video frames/software bitmaps.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp/Helpers/CameraHelper/CameraHelper.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp/Helpers/CameraHelper/CameraHelper.cs",
"CodeFile": "CameraHelperCode.bind",
"Icon": "/SamplePages/CameraHelper/CameraHelper.png",
"BadgeUpdateVersionRequired": "April 2018 update required",
@ -776,7 +776,7 @@
"Type": "ThemeListenerPage",
"Subcategory": "Systems",
"About": "The ThemeListener allows you to keep track of changes to the System Theme.",
"CodeUrl" : "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Helpers/ThemeListener.cs",
"CodeUrl" : "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Helpers/ThemeListener.cs",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/ThemeListener.md"
},
@ -785,7 +785,7 @@
"Type": "RemoteDeviceHelperPage",
"Subcategory": "Systems",
"About": "Allows you to easily enumerate remote devices ( Project Rome ).",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp/Helpers/RemoteDeviceHelper/RemoteDeviceHelper.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp/Helpers/RemoteDeviceHelper/RemoteDeviceHelper.cs",
"CodeFile": "RemoteDeviceHelperCode.bind",
"Icon": "/SamplePages/RemoteDeviceHelper/RemoteDeviceHelper.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/RemoteDeviceHelper.md"
@ -795,7 +795,7 @@
"Type": "ViewportBehaviorPage",
"Subcategory": "Systems",
"About": "Behavior for listening element enter or exit viewport",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Behaviors/Viewport",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Behaviors/Viewport",
"CodeFile": "ViewportBehaviorCode.bind",
"XamlCodeFile": "ViewportBehaviorXaml.bind",
"Icon": "/SamplePages/ViewportBehavior/ViewportBehavior.png",
@ -806,7 +806,7 @@
"Type": "AutoFocusBehaviorPage",
"Subcategory": "Systems",
"About": "Behavior to automatically set the focus on a control when it loads",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI.Behaviors/Focus/AutoFocusBehavior.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI.Behaviors/Focus/AutoFocusBehavior.cs",
"XamlCodeFile": "AutoFocusBehaviorXaml.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/behaviors/FocusBehaviors.md"
@ -816,7 +816,7 @@
"Type": "FocusBehaviorPage",
"Subcategory": "Systems",
"About": "Behavior to automatically set the focus on the first control which accepts it",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI.Behaviors/Focus/FocusBehavior.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI.Behaviors/Focus/FocusBehavior.cs",
"CodeFile": "FocusBehaviorXaml.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/behaviors/FocusBehaviors.md"
@ -825,7 +825,7 @@
"Name": "AutoSelectBehavior",
"Subcategory": "Systems",
"About": "Behavior to automatically select the entire content of a TextBox control when it loads",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/master/Microsoft.Toolkit.Uwp.UI/Behaviors/",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/master/Microsoft.Toolkit.Uwp.UI/Behaviors/",
"XamlCodeFile": "/SamplePages/AutoSelectBehavior/AutoSelectBehaviorXaml.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/behaviors/AutoSelectBehavior.md"
@ -835,7 +835,7 @@
"Type": "CanvasPathGeometryPage",
"Subcategory": "Parser",
"About": "CanvasPathGeometry class allows you to convert Win2d Path Mini Language string to CanvasGeometry, Brushes, CanvasStrokes or CanvasStrokeStyles.",
"CodeUrl" : "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Geometry",
"CodeUrl" : "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Geometry",
"Icon": "/SamplePages/CanvasPathGeometry/CanvasPathGeometry.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/parsers/CanvasPathGeometry.md"
},
@ -844,7 +844,7 @@
"Type": "LiveTilePage",
"Subcategory": "Notifications",
"About": "This shows how to update a Live Tile with a rich Adaptive notification.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.Notifications/Tiles",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.Notifications/Tiles",
"CodeFile": "LiveTileCode.bind",
"Icon": "/SamplePages/LiveTile/LiveTile.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/notifications/NotificationsOverview.md"
@ -854,7 +854,7 @@
"Type": "ToastPage",
"Subcategory": "Notifications",
"About": "This shows how to send a Toast notification.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.Notifications/Toasts",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.Notifications/Toasts",
"CodeFile": "ToastCode.bind",
"Icon": "/SamplePages/Toast/Toast.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/notifications/NotificationsOverview.md"
@ -864,7 +864,7 @@
"Type": "WeatherLiveTileAndToastPage",
"Subcategory": "Notifications",
"About": "This shows how to send a Weather Live Tile and Toast notification, displaying the forecast.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.Notifications",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.Notifications",
"CodeFile": "WeatherLiveTileAndToastCode.bind",
"Icon": "/SamplePages/WeatherLiveTileAndToast/WeatherLiveTileAndToast.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/notifications/NotificationsOverview.md"
@ -873,7 +873,7 @@
"Name": "Guard APIs",
"Subcategory": "Developer",
"About": "The Guard APIs can be used to validate method arguments in a streamlined manner, which is also faster, less verbose, more expressive and less error prone than manually writing checks and throwing exceptions.",
"CodeUrl" : "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Diagnostics",
"CodeUrl" : "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Diagnostics",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/developer-tools/Guard.md"
},
@ -881,7 +881,7 @@
"Name": "High Performance APIs",
"Subcategory": "Developer",
"About": "The High Performance package contains a set of APIs that are heavily focused on optimization. All the new APIs have been carefully crafted to achieve the best possible performance when using them, either through reduced memory allocation, micro-optimizations at the assembly level, or by structuring the APIs in a way that facilitates writing performance oriented code in general.",
"CodeUrl" : "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.HighPerformance",
"CodeUrl" : "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.HighPerformance",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/high-performance/Introduction.md"
},
@ -891,13 +891,13 @@
"About": "The MVVM Toolkit package is a modern, fast, and modular MVVM library for .NET Standard 2.0.",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/mvvm/Introduction.md",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Mvvm"
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Mvvm"
},
{
"Name": "CompareStateTrigger",
"Subcategory": "State Triggers",
"About": "Enables a state if the value is equal to, greater than, or less than another value",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/CompareStateTrigger.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/CompareStateTrigger.cs",
"XamlCodeFile": "/SamplePages/Triggers/CompareStateTrigger.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/Triggers.md"
@ -906,7 +906,7 @@
"Name": "IsEqualStateTrigger",
"Subcategory": "State Triggers",
"About": "Enables a state if the value is equal to another value",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/IsEqualStateTrigger.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/IsEqualStateTrigger.cs",
"XamlCodeFile": "/SamplePages/Triggers/IsEqualStateTrigger.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/Triggers.md"
@ -916,7 +916,7 @@
"Type": "FullScreenModeStateTriggerPage",
"Subcategory": "State Triggers",
"About": "Trigger for switching when in full screen mode",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/FullScreenModeStateTrigger.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/FullScreenModeStateTrigger.cs",
"XamlCodeFile": "/SamplePages/Triggers/FullScreenModeStateTrigger.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/Triggers.md"
@ -926,7 +926,7 @@
"Type": "IsNullOrEmptyStateTriggerPage",
"Subcategory": "State Triggers",
"About": "Enables a state if an Object is null or a String/IEnumerable is empty",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/IsNullOrEmptyStateTrigger.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/IsNullOrEmptyStateTrigger.cs",
"XamlCodeFile": "/SamplePages/Triggers/IsNullOrEmptyStateTrigger.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/Triggers.md"
@ -935,7 +935,7 @@
"Name": "NetworkConnectionStateTrigger",
"Subcategory": "State Triggers",
"About": "Trigger for switching when the network availability changes",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/NetworkConnectionStateTrigger.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/NetworkConnectionStateTrigger.cs",
"XamlCodeFile": "/SamplePages/Triggers/NetworkConnectionStateTrigger.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/Triggers.md"
@ -944,7 +944,7 @@
"Name": "IsNotEqualStateTrigger",
"Subcategory": "State Triggers",
"About": "Enables a state if the value is not equal to another value",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/IsNotEqualStateTrigger.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/IsNotEqualStateTrigger.cs",
"XamlCodeFile": "/SamplePages/Triggers/IsNotEqualStateTrigger.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/Triggers.md"
@ -953,7 +953,7 @@
"Name": "RegexStateTrigger",
"Subcategory": "State Triggers",
"About": "Enables a state if the regex expression is true for a given string value",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/RegexStateTrigger.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/RegexStateTrigger.cs",
"XamlCodeFile": "/SamplePages/Triggers/RegexStateTrigger.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/Triggers.md"
@ -962,7 +962,7 @@
"Name": "UserHandPreferenceStateTrigger",
"Subcategory": "State Triggers",
"About": "Trigger for switching UI based on whether the user favours their left or right hand.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/UserHandPreferenceStateTrigger.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/UserHandPreferenceStateTrigger.cs",
"XamlCodeFile": "/SamplePages/Triggers/UserHandPreferenceStateTrigger.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/Triggers.md"
@ -971,7 +971,7 @@
"Name": "UserInteractionModeStateTrigger",
"Subcategory": "State Triggers",
"About": "Trigger for switching when the User interaction mode changes (tablet mode)",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/UserInteractionModeStateTrigger.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Triggers/UserInteractionModeStateTrigger.cs",
"XamlCodeFile": "/SamplePages/Triggers/UserInteractionModeStateTrigger.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/Triggers.md"
@ -986,7 +986,7 @@
"Name": "BackdropBlurBrush",
"Type": "BackdropBlurBrushPage",
"About": "Brush which fills the contents with a blurred version of whatever's behind it.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/BackdropBlurBrush.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/BackdropBlurBrush.cs",
"XamlCodeFile": "BackdropBlurBrushXaml.bind",
"Icon": "/SamplePages/BackdropBlurBrush/BackdropBlurBrush.png",
"ApiCheck": "Windows.UI.Xaml.Media.XamlCompositionBrushBase",
@ -996,7 +996,7 @@
"Name": "BackdropInvertBrush",
"Type": "BackdropInvertBrushPage",
"About": "Brush which fills the contents with an inverted version of whatever's behind it.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/BackdropInvertBrush.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/BackdropInvertBrush.cs",
"XamlCodeFile": "BackdropInvertBrushXaml.bind",
"Icon": "/SamplePages/BackdropInvertBrush/BackdropInvertBrush.png",
"ApiCheck": "Windows.UI.Xaml.Media.XamlCompositionBrushBase",
@ -1006,7 +1006,7 @@
"Name": "BackdropGammaTransferBrush",
"Type": "BackdropGammaTransferBrushPage",
"About": "Brush which fills the contents with a gamma modified version of whatever's behind it.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/BackdropGammaTransferBrush.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/BackdropGammaTransferBrush.cs",
"XamlCodeFile": "BackdropGammaTransferBrushXaml.bind",
"Icon": "/SamplePages/BackdropGammaTransferBrush/BackdropGammaTransferBrush.png",
"ApiCheck": "Windows.UI.Xaml.Media.XamlCompositionBrushBase",
@ -1016,7 +1016,7 @@
"Name": "BackdropSaturationBrush",
"Type": "BackdropSaturationBrushPage",
"About": "Brush which applies a Saturation effect to whatever's behind it.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/BackdropSaturationBrush.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/BackdropSaturationBrush.cs",
"XamlCodeFile": "BackdropSaturationBrushXaml.bind",
"Icon": "/SamplePages/BackdropSaturationBrush/BackdropSaturationBrush.png",
"ApiCheck": "Windows.UI.Xaml.Media.XamlCompositionBrushBase",
@ -1026,7 +1026,7 @@
"Name": "BackdropSepiaBrush",
"Type": "BackdropSepiaBrushPage",
"About": "Brush which applies a Sepia effect to whatever's behind it.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/BackdropSepiaBrush.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/BackdropSepiaBrush.cs",
"XamlCodeFile": "BackdropSepiaBrushXaml.bind",
"Icon": "/SamplePages/BackdropSepiaBrush/BackdropSepiaBrush.png",
"ApiCheck": "Windows.UI.Xaml.Media.XamlCompositionBrushBase",
@ -1036,7 +1036,7 @@
"Name": "ImageBlendBrush",
"Type": "ImageBlendBrushPage",
"About": "Brush which applies a blending effect a given image from whatever's behind it.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/ImageBlendBrush.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/ImageBlendBrush.cs",
"XamlCodeFile": "ImageBlendBrushXaml.bind",
"Icon": "/SamplePages/ImageBlendBrush/ImageBlendBrush.png",
"ApiCheck": "Windows.UI.Xaml.Media.XamlCompositionBrushBase",
@ -1048,7 +1048,7 @@
"BadgeUpdateVersionRequired": "DEPRECATED",
"DeprecatedWarning": "Please migrate to the RadialGradientBrush control from WinUI, this control will be removed in a future release. https://aka.ms/winui",
"About": "A composition brush which creates a radial gradient effect.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/RadialGradientBrush.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/RadialGradientBrush.cs",
"XamlCodeFile": "RadialGradientBrushXaml.bind",
"Icon": "/SamplePages/RadialGradientBrush/RadialGradientBrush.png",
"ApiCheck": "Windows.UI.Xaml.Media.XamlCompositionBrushBase",
@ -1058,7 +1058,7 @@
"Name": "PipelineBrush",
"Type": "PipelineBrushPage",
"About": "A composition brush which can render any custom Win2D/Composition effects chain.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/PipelineBrush.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/PipelineBrush.cs",
"CodeFile": "PipelineBrushCode.bind",
"XamlCodeFile": "PipelineBrushXaml.bind",
"Icon": "/SamplePages/PipelineBrush/PipelineBrush.png",
@ -1068,7 +1068,7 @@
{
"Name": "VisualEffectFactory",
"About": "A composition pipeline which can render any custom Win2D/Composition effects chain directly on a Composition visual.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Visuals",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Visuals",
"XamlCodeFile": "VisualEffectFactory.bind",
"Icon": "/SamplePages/PipelineBrush/PipelineBrush.png",
"ApiCheck": "Windows.UI.Xaml.Media.XamlCompositionBrushBase",
@ -1078,7 +1078,7 @@
"Name": "AcrylicBrush",
"Type": "AcrylicBrushPage",
"About": "A composition brush that provides a custom implementation of the official acrylic brush.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/AcrylicBrush.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/AcrylicBrush.cs",
"XamlCodeFile": "AcrylicBrushXaml.bind",
"Icon": "/SamplePages/AcrylicBrush/AcrylicBrush.png",
"ApiCheck": "Windows.UI.Xaml.Media.XamlCompositionBrushBase",
@ -1088,7 +1088,7 @@
"Name": "TilesBrush",
"Type": "TilesBrushPage",
"About": "A composition brush that provides the ability to display a repeated image on its render surface.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/TilesBrush.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI.Media/Brushes/TilesBrush.cs",
"XamlCodeFile": "TilesBrushXaml.bind",
"Icon": "/SamplePages/TilesBrush/TilesBrush.png",
"ApiCheck": "Windows.UI.Xaml.Media.XamlCompositionBrushBase",
@ -1104,8 +1104,9 @@
"Name": "ListViewExtensions",
"Type": "ListViewExtensionsPage",
"About": "Extensions for all controls that inherit from ListViewBase like ListView.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/Extensions/ListViewBase",
"XamlCodeFile": "ListViewExtensionsCode.bind",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/Extensions/ListViewBase",
"CodeFile": "ListViewExtensionsCode.bind",
"XamlCodeFile": "ListViewExtensionsXaml.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/extensions/ListViewExtensions.md"
},
@ -1113,7 +1114,7 @@
"Name": "ViewExtensions",
"Type": "ViewExtensionsPage",
"About": "View extensions to set TitleBar properties.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/Extensions",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/Extensions",
"XamlCodeFile": "ViewExtensionsCode.bind",
"Icon": "/SamplePages/ViewExtensions/ViewExtensions.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/extensions/ViewExtensions.md"
@ -1122,7 +1123,7 @@
"Name": "TextBoxMask",
"Type": "TextBoxMaskPage",
"About": "TextBox Mask property allows a user to more easily enter fixed width text in TextBox control where you would like them to enter the data in a certain format",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/Extensions/TextBox",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/Extensions/TextBox",
"XamlCodeFile": "TextBoxMask.bind",
"Icon": "/SamplePages/TextBoxMask/TextBoxMask.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/extensions/TextBoxMask.md"
@ -1131,7 +1132,7 @@
"Name": "Mouse",
"Type": "MouseCursorPage",
"About": "Mouse.Cursor attached property enables you to easily change the mouse cursor over specific Framework elements.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Extensions/FrameworkElement/FrameworkElementExtensions.Mouse.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Extensions/FrameworkElement/FrameworkElementExtensions.Mouse.cs",
"XamlCodeFile": "MouseCursorPage.bind",
"Icon": "/SamplePages/Mouse/MouseCursor.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/extensions/MouseCursor.md"
@ -1140,7 +1141,7 @@
"Name": "TextBoxRegex",
"Type": "TextBoxRegexPage",
"About": "TextBoxRegex helps developer to validate a TextBox with a regular expression using the Regex property.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/Extensions/TextBox",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/Extensions/TextBox",
"XamlCodeFile": "TextBoxRegex.bind",
"Icon": "/SamplePages/TextBoxRegex/TextBoxRegex.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/extensions/TextBoxRegex.md"
@ -1148,7 +1149,7 @@
{
"Name": "SurfaceDialTextbox",
"About": "Enables support for Surface Dial on any given Textbox. Rotate the Dial to change the numeric value of the Textbox.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Extensions/TextBox/TextBoxExtensions.SurfaceDial.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Extensions/TextBox/TextBoxExtensions.SurfaceDial.cs",
"XamlCodeFile": "/SamplePages/SurfaceDialTextbox/SurfaceDialTextboxCode.bind",
"Icon": "/SamplePages/SurfaceDialTextbox/SurfaceDialTextbox.png",
"BadgeUpdateVersionRequired": "Anniversary Update required",
@ -1158,7 +1159,7 @@
"Name": "Visual Extensions",
"Type": "VisualExtensionsPage",
"About": "Attached properties to modify object visual properties through XAML",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Extensions/VisualExtensions.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Extensions/VisualExtensions.cs",
"XamlCodeFile": "VisualExtensionsCode.bind",
"Icon": "/SamplePages/Visual Extensions/VisualExtensions.png",
"BadgeUpdateVersionRequired": "Creators Update required",
@ -1168,7 +1169,7 @@
"Name": "FrameworkElementExtensions",
"Type": "FrameworkElementExtensionsPage",
"About": "Extensions for all the FrameworkElement controls.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/Extensions/FrameworkElement",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/Extensions/FrameworkElement",
"XamlCodeFile": "FrameworkElementExtensionsCode.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/extensions/FrameworkElementExtensions.md"
@ -1177,7 +1178,7 @@
"Name": "ClipToBounds",
"Type": "ClipToBoundsPage",
"About": "Extension to clip the UIElement inner controls inside its bounds.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Extensions/UIElementExtensions.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Extensions/UIElementExtensions.cs",
"XamlCodeFile": "ClipToBoundsCode.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/extensions/UIElementExtensions.md"
@ -1186,7 +1187,7 @@
"Name": "StringExtensions",
"Type": "StringExtensionsPage",
"About": "String Extensions to validate strings",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit/Extensions/StringExtensions.cs",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit/Extensions/StringExtensions.cs",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/extensions/StringExtensions.md"
},
@ -1194,7 +1195,7 @@
"Name": "ScrollViewerExtensions",
"Type": "ScrollViewerExtensionsPage",
"About": "Extensions for all controls that contain a ScrollViewer like ListView.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/Extensions/ScrollViewer",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/Extensions/ScrollViewer",
"XamlCodeFile": "ScrollViewerExtensionsXaml.bind",
"CodeFile": "ScrollViewerExtensionsCode.bind",
"Icon": "/Assets/Helpers.png",
@ -1204,7 +1205,7 @@
"Name": "OnDevice",
"Type": "OnDevicePage",
"About": "The OnDevice markup extension allows you to customize UI appearance on a per-DeviceFamily basis.",
"CodeUrl" : "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Extensions/Markup/OnDeviceExtension.cs",
"CodeUrl" : "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Extensions/Markup/OnDeviceExtension.cs",
"Icon": "/SamplePages/OnDevice/OnDevice.png",
"XamlCodeFile": "OnDeviceXaml.bind",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/extensions/OnDeviceMarkup.md"
@ -1213,7 +1214,7 @@
"Name": "IconExtensions",
"Type": "IconExtensionsPage",
"About": "Markup extensions to easily create various types of icons.",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/Extensions/Markup",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.UI/Extensions/Markup",
"XamlCodeFile": "IconExtensionsXaml.bind",
"Icon": "/Assets/Helpers.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/extensions/IconMarkupExtensions.md"
@ -1222,7 +1223,7 @@
"Name": "EnumValuesExtension",
"Type": "EnumValuesExtensionPage",
"About": "The EnumValuesExtension markup extension allows you to easily retrieve a collection of all values from an enum type.",
"CodeUrl" : "https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Extensions/Markup/EnumValuesExtension.cs",
"CodeUrl" : "https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Extensions/Markup/EnumValuesExtension.cs",
"Icon": "/Assets/Helpers.png",
"XamlCodeFile": "EnumValuesExtensionXaml.bind",
"CodeFile": "EnumValuesExtensionCode.bind",
@ -1240,7 +1241,7 @@
"About": "Demonstrate the properties and events of the Gaze Interaction library",
"XamlCodeFile": "GazeInteractionXaml.bind",
"CodeFile": "GazeInteractionCode.bind",
"CodeUrl" : "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.Input.GazeInteraction",
"CodeUrl" : "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.Input.GazeInteraction",
"Icon": "/SamplePages/GazeInteraction/GazeInteraction.png",
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/gaze/GazeInteractionLibrary.md",
"ApiCheck": "Windows.Devices.Input.Preview.GazeInputSourcePreview"
@ -1249,7 +1250,7 @@
"Name": "GazeTracing",
"Type": "GazeTracingPage",
"About": "Shows how to use the Windows 10 API for eye trackers",
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.Input.Gaze/",
"CodeUrl": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/main/Microsoft.Toolkit.Uwp.Input.Gaze/",
"XamlCodeFile": "GazeTracingXaml.bind",
"CodeFile": "GazeTracingCode.bind",
"Icon": "/SamplePages/GazeTracing/GazeTracing.png",

Просмотреть файл

@ -15,15 +15,15 @@
},
{
"title": "GitHub Issues",
"url": "https://github.com/windows-toolkit/WindowsCommunityToolkit/issues"
"url": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues"
},
{
"title": "Roadmap",
"url": "https://github.com/windows-toolkit/WindowsCommunityToolkit/milestones"
"url": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/milestones"
},
{
"title": "Contributors",
"url": "https://github.com/windows-toolkit/WindowsCommunityToolkit/graphs/contributors"
"url": "https://github.com/CommunityToolkit/WindowsCommunityToolkit/graphs/contributors"
},
{
"title": "UWP Community Discord",
@ -90,7 +90,7 @@
},
{
"title": "ColorCode-Universal (Dependency)",
"url": "https://github.com/windows-toolkit/ColorCode-Universal"
"url": "https://github.com/CommunityToolkit/ColorCode-Universal"
},
{
"title": "Monaco Editor UWP (Dependency)",

Просмотреть файл

@ -16,7 +16,7 @@
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<AllowCrossPlatformRetargeting>false</AllowCrossPlatformRetargeting>
<IsPackable>false</IsPackable>
<NoWarn>$(NoWarn);2008</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -42,7 +42,6 @@
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -53,7 +52,6 @@
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -64,7 +62,6 @@
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -75,7 +72,6 @@
<OutputPath>bin\ARM\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -86,7 +82,6 @@
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -97,7 +92,6 @@
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -128,7 +122,6 @@
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -138,7 +131,6 @@
<OutputPath>bin\ARM64\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>ARM64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>

Просмотреть файл

@ -2,9 +2,12 @@
<PropertyGroup>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
<Title>Windows Community Toolkit Animations</Title>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - UI Animations</Title>
<Description>
This library provides helpers and extensions on top of Windows Composition and XAML storyboards. It is part of the Windows Community Toolkit.
This library provides helpers and extensions on top of Windows Composition and XAML storyboards. It is a part of the Windows Community Toolkit.
Namespace:
- CompositionAnimations:
@ -14,8 +17,7 @@
- Expressions: ExpressionNodes, ExpressionValues, ReferenceNodes, CompositionExtensions, ExpressionFunctions, OperationType
- AnimationExtensions: Blur, Fade, Light, Offset, Rotate, Saturation, Scale
</Description>
<PackageTags>Windows;Community;Toolkit;WCT;UWP;Animations;Composition;Connected;Implicit;XAML</PackageTags>
<LangVersion>9.0</LangVersion>
<PackageTags>UI;XAML;Animations;Composition;Connected;Implicit;Expressions;Extensions</PackageTags>
</PropertyGroup>
<ItemGroup>

Просмотреть файл

@ -15,7 +15,7 @@ namespace Microsoft.Toolkit.Uwp.UI.Behaviors
/// <typeparam name="T">The type of the associated object.</typeparam>
/// <seealso cref="Microsoft.Xaml.Interactivity.Behavior{T}" />
/// <remarks>
/// For more info, see https://github.com/windows-toolkit/WindowsCommunityToolkit/issues/1008.
/// For more info, see https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/1008.
/// </remarks>
public abstract class BehaviorBase<T> : Behavior<T>
where T : UIElement

Просмотреть файл

@ -1,11 +1,14 @@
<Project Sdk="MSBuild.Sdk.Extras">
<PropertyGroup>
<TargetFramework>uap10.0.17763</TargetFramework>
<LangVersion>9.0</LangVersion>
<Title>Windows Community Toolkit UI Behaviors</Title>
<UseWindowsDesktopSdk>true</UseWindowsDesktopSdk>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - UI Behaviors</Title>
<Description>
This library provides UI behaviors built on the XAML behaviors SDK. It is part of the Windows Community Toolkit.
This library provides UI behaviors built on the XAML behaviors SDK. It is a part of the Windows Community Toolkit.
Behaviors:
- BehaviorBase: Helper for building Behaviors
@ -14,9 +17,7 @@
- ViewportBehavior: Listening for element to enter or exit the ScrollViewer viewport
- FadeHeaderBehavior, QuickReturnHeaderBehavior, StickyHeaderBehavior: Helpers for ListViewBase Header Behavior
</Description>
<PackageTags>Windows;Community;Toolkit;WCT;UWP;UI;Behaviors;Interactivity;Interaction;XAML</PackageTags>
<UseWindowsDesktopSdk>true</UseWindowsDesktopSdk>
<PackageTags>UI;XAML;Behaviors;Interactivity;Interaction;Focus;Header;Viewport</PackageTags>
</PropertyGroup>
<ItemGroup>

Просмотреть файл

@ -1,4 +1,4 @@
// Licensed to the .NET Foundation under one or more agreements.
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

Просмотреть файл

@ -53,6 +53,7 @@
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="Windows, Version=255.255.255.255, Culture=neutral, processorArchitecture=MSIL">
<Private>False</Private>
<SpecificVersion>False</SpecificVersion>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\UnionMetadata\10.0.17763.0\Windows.winmd</HintPath>
</Reference>
@ -64,12 +65,12 @@
<Reference Include="System.Xaml" />
<Reference Include="System.Runtime.WindowsRuntime.UI.Xaml" />
<Reference Include="Windows.Foundation.FoundationContract">
<HintPath>$(ProgramFiles)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmd</HintPath>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmd</HintPath>
<Aliases>WindowsRuntime</Aliases>
<Private>False</Private>
</Reference>
<Reference Include="Windows.Foundation.UniversalApiContract">
<HintPath>$(ProgramFiles)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.UniversalApiContract\7.0.0.0\Windows.Foundation.UniversalApiContract.winmd</HintPath>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.UniversalApiContract\7.0.0.0\Windows.Foundation.UniversalApiContract.winmd</HintPath>
<Aliases>WindowsRuntime</Aliases>
<Private>False</Private>
</Reference>

Просмотреть файл

@ -1,4 +1,4 @@
// Licensed to the .NET Foundation under one or more agreements.
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

Просмотреть файл

@ -1,4 +1,4 @@
// Licensed to the .NET Foundation under one or more agreements.
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

Просмотреть файл

@ -2,9 +2,13 @@
<PropertyGroup>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
<Title>Windows Community Toolkit Controls</Title>
<RootNamespace>Microsoft.Toolkit.Uwp.UI.Controls</RootNamespace>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - Common Controls</Title>
<Description>
This library provides XAML templated controls. It is part of the Windows Community Toolkit.
This library provides XAML templated controls. It is a part of the Windows Community Toolkit.
Controls:
- CameraPreview: Easily preview video from camera sources and get realtime frames from the selected source.
@ -19,47 +23,30 @@
- TileControl: A ContentControl that show an image repeated many times.
</Description>
<PackageTags>
Windows;Community;Toolkit;WCT;UWP;Controls;XAML;
Controls;XAML;UI;
Camera;Preview ;CameraPreview ;
Drop;Shadow;Panel ;DropShadowPanel ;DropShadow ;
Image;Ex ;ImageEx ;
In;App;Notification;InAppNotification;InApp ;
Loading ;
Menu ;
Radial;Progress;Bar;RadialProgressBar;ProgressBar ;
Rotator;Tile ;RotatorTile ;
Tabbed;Command;Bar ;TabbedCommandBar ;CommandBar ;
Text;Tool;Bar ;TextToolBar ;ToolBar ;Markdown;
Text;Tool;Bar ;TextToolBar ;ToolBar ;
Markdown ;RTF ;
Tile;Control ;TileControl ;
</PackageTags>
<LangVersion>9.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI.Controls.Primitives\Microsoft.Toolkit.Uwp.UI.Controls.Primitives.csproj" />
<ProjectReference Include="..\Microsoft.Toolkit.Uwp\Microsoft.Toolkit.Uwp.csproj" />
</ItemGroup>
<ItemGroup>
<None Include="VisualStudioToolsManifest.xml" Pack="true" PackagePath="tools" />
<None Include="$(OutDir)\Design\$(MSBuildProjectName).Design*.dll;$(OutDir)\Design\$(MSBuildProjectName).Design*.pdb" Pack="true" PackagePath="lib\$(TargetFramework)\Design" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.UI.Xaml" Version="2.5.0" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\en-us\Resources.resw" />
</ItemGroup>
<!-- https://weblogs.asp.net/rweigelt/disable-warnings-in-generated-c-files-of-uwp-app -->
<Target Name="PragmaWarningDisablePrefixer" AfterTargets="MarkupCompilePass2">
<ItemGroup>
<GeneratedCSFiles Include="**\*.g.cs;**\*.g.i.cs" />
</ItemGroup>
<Message Text="CSFiles: @(GeneratedCSFiles->'&quot;%(Identity)&quot;')" />
<Exec Command="for %%f in (@(GeneratedCSFiles->'&quot;%(Identity)&quot;')) do echo #pragma warning disable &gt; %%f.temp &amp;&amp; type %%f &gt;&gt; %%f.temp &amp;&amp; move /y %%f.temp %%f &gt; NUL" />
</Target>
<ItemGroup>
<ProjectReference Include="..\Microsoft.Toolkit.Uwp\Microsoft.Toolkit.Uwp.csproj" />
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI.Controls.Primitives\Microsoft.Toolkit.Uwp.UI.Controls.Primitives.csproj" />
</ItemGroup>
<Import Project="$(BuildToolsDirectory)Windows.Toolkit.UWP.Controls.targets" />
</Project>

Просмотреть файл

@ -52,6 +52,7 @@
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="Windows, Version=255.255.255.255, Culture=neutral, processorArchitecture=MSIL">
<Private>False</Private>
<SpecificVersion>False</SpecificVersion>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\UnionMetadata\10.0.17763.0\Windows.winmd</HintPath>
</Reference>
@ -63,12 +64,12 @@
<Reference Include="System.Xaml" />
<Reference Include="System.Runtime.WindowsRuntime.UI.Xaml" />
<Reference Include="Windows.Foundation.FoundationContract">
<HintPath>$(ProgramFiles)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmd</HintPath>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmd</HintPath>
<Aliases>WindowsRuntime</Aliases>
<Private>False</Private>
</Reference>
<Reference Include="Windows.Foundation.UniversalApiContract">
<HintPath>$(ProgramFiles)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.UniversalApiContract\7.0.0.0\Windows.Foundation.UniversalApiContract.winmd</HintPath>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.UniversalApiContract\7.0.0.0\Windows.Foundation.UniversalApiContract.winmd</HintPath>
<Aliases>WindowsRuntime</Aliases>
<Private>False</Private>
</Reference>

Просмотреть файл

@ -2,23 +2,16 @@
<PropertyGroup>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
<Title>Windows Community Toolkit Controls DataGrid</Title>
<Description>
This library provides a XAML DataGrid control. It is part of the Windows Community Toolkit.
</Description>
<PackageTags>Windows;Community;Toolkit;WCT;UWP;Controls;XAML;Data;Grid;DataGrid</PackageTags>
<RootNamespace>Microsoft.Toolkit.Uwp.UI.Controls</RootNamespace>
</PropertyGroup>
<ItemGroup>
<None Include="VisualStudioToolsManifest.xml" Pack="true" PackagePath="tools" />
<None Include="$(OutDir)\Design\$(MSBuildProjectName).Design*.dll;$(OutDir)\Design\$(MSBuildProjectName).Design*.pdb" Pack="true" PackagePath="lib\$(TargetFramework)\Design" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.UI.Xaml" Version="2.5.0" />
</ItemGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - DataGrid Control</Title>
<Description>
This library provides a XAML DataGrid control. It is a part of the Windows Community Toolkit.
</Description>
<PackageTags>Controls;XAML;UI;Data;Grid;DataGrid</PackageTags>
</PropertyGroup>
<ItemGroup>
<Compile Update="Properties\Resources.Designer.cs">
@ -35,13 +28,6 @@
</EmbeddedResource>
</ItemGroup>
<!-- https://weblogs.asp.net/rweigelt/disable-warnings-in-generated-c-files-of-uwp-app -->
<Target Name="PragmaWarningDisablePrefixer" AfterTargets="MarkupCompilePass2">
<ItemGroup>
<GeneratedCSFiles Include="**\*.g.cs;**\*.g.i.cs" />
</ItemGroup>
<Message Text="CSFiles: @(GeneratedCSFiles->'&quot;%(Identity)&quot;')" />
<Exec Command="for %%f in (@(GeneratedCSFiles->'&quot;%(Identity)&quot;')) do echo #pragma warning disable &gt; %%f.temp &amp;&amp; type %%f &gt;&gt; %%f.temp &amp;&amp; move /y %%f.temp %%f &gt; NUL" />
</Target>
<Import Project="$(BuildToolsDirectory)Windows.Toolkit.UWP.Controls.targets" />
</Project>

Просмотреть файл

@ -53,6 +53,7 @@
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="Windows, Version=255.255.255.255, Culture=neutral, processorArchitecture=MSIL">
<Private>False</Private>
<SpecificVersion>False</SpecificVersion>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\UnionMetadata\10.0.17763.0\Windows.winmd</HintPath>
</Reference>
@ -64,12 +65,12 @@
<Reference Include="System.Xaml" />
<Reference Include="System.Runtime.WindowsRuntime.UI.Xaml" />
<Reference Include="Windows.Foundation.FoundationContract">
<HintPath>$(ProgramFiles)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmd</HintPath>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmd</HintPath>
<Aliases>WindowsRuntime</Aliases>
<Private>False</Private>
</Reference>
<Reference Include="Windows.Foundation.UniversalApiContract">
<HintPath>$(ProgramFiles)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.UniversalApiContract\7.0.0.0\Windows.Foundation.UniversalApiContract.winmd</HintPath>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.UniversalApiContract\7.0.0.0\Windows.Foundation.UniversalApiContract.winmd</HintPath>
<Aliases>WindowsRuntime</Aliases>
<Private>False</Private>
</Reference>

Просмотреть файл

@ -2,9 +2,13 @@
<PropertyGroup>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
<Title>Windows Community Toolkit Controls</Title>
<RootNamespace>Microsoft.Toolkit.Uwp.UI.Controls</RootNamespace>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - Input Controls</Title>
<Description>
This library provides XAML templated controls. It is part of the Windows Community Toolkit.
This library provides XAML templated controls. It is a part of the Windows Community Toolkit.
Controls:
- ColorPicker/ColorPickerButton: Improved ColorPicker and DropDownButton version.
@ -14,42 +18,28 @@
- TokenizingTextBox: An AutoSuggestBox like control which places entered input into easily removed containers for contacts or tags.
</Description>
<PackageTags>
Windows;Community;Toolkit;WCT;UWP;Controls;XAML;
Controls;XAML;UI;
Color;Picker;Button ;ColorPickerButton ;ColorPicker ;
Radial;Gauge ;RadialGauge ;
Range;Selector ;RangeSelector ;
Remote;Device;Picker;RemoteDevicePicker;DevicePicker;RemoteDevice;
Tokenizing;Text;Box ;TokenizingTextBox ;TextBox ;
</PackageTags>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI.Controls.Primitives\Microsoft.Toolkit.Uwp.UI.Controls.Primitives.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\Microsoft.Toolkit.Uwp.UI.Controls.Core\ControlHelpers.Composition.cs" Link="ControlHelpers.Composition.cs" />
<Compile Include="..\Microsoft.Toolkit.Uwp.UI.Controls.Core\ControlHelpers.XamlHost.cs" Link="ControlHelpers.XamlHost.cs" />
<None Include="VisualStudioToolsManifest.xml" Pack="true" PackagePath="tools" />
<None Include="$(OutDir)\Design\$(MSBuildProjectName).Design*.dll;$(OutDir)\Design\$(MSBuildProjectName).Design*.pdb" Pack="true" PackagePath="lib\$(TargetFramework)\Design" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.UI.Xaml" Version="2.5.0" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\en-us\Resources.resw" />
</ItemGroup>
<!-- https://weblogs.asp.net/rweigelt/disable-warnings-in-generated-c-files-of-uwp-app -->
<Target Name="PragmaWarningDisablePrefixer" AfterTargets="MarkupCompilePass2">
<ItemGroup>
<GeneratedCSFiles Include="**\*.g.cs;**\*.g.i.cs" />
</ItemGroup>
<Message Text="CSFiles: @(GeneratedCSFiles->'&quot;%(Identity)&quot;')" />
<Exec Command="for %%f in (@(GeneratedCSFiles->'&quot;%(Identity)&quot;')) do echo #pragma warning disable &gt; %%f.temp &amp;&amp; type %%f &gt;&gt; %%f.temp &amp;&amp; move /y %%f.temp %%f &gt; NUL" />
</Target>
<ItemGroup>
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI.Controls.Primitives\Microsoft.Toolkit.Uwp.UI.Controls.Primitives.csproj" />
</ItemGroup>
<Import Project="$(BuildToolsDirectory)Windows.Toolkit.UWP.Controls.targets" />
</Project>

Просмотреть файл

@ -53,6 +53,7 @@
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="Windows, Version=255.255.255.255, Culture=neutral, processorArchitecture=MSIL">
<Private>False</Private>
<SpecificVersion>False</SpecificVersion>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\UnionMetadata\10.0.17763.0\Windows.winmd</HintPath>
</Reference>
@ -64,12 +65,12 @@
<Reference Include="System.Xaml" />
<Reference Include="System.Runtime.WindowsRuntime.UI.Xaml" />
<Reference Include="Windows.Foundation.FoundationContract">
<HintPath>$(ProgramFiles)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmd</HintPath>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmd</HintPath>
<Aliases>WindowsRuntime</Aliases>
<Private>False</Private>
</Reference>
<Reference Include="Windows.Foundation.UniversalApiContract">
<HintPath>$(ProgramFiles)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.UniversalApiContract\7.0.0.0\Windows.Foundation.UniversalApiContract.winmd</HintPath>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.UniversalApiContract\7.0.0.0\Windows.Foundation.UniversalApiContract.winmd</HintPath>
<Aliases>WindowsRuntime</Aliases>
<Private>False</Private>
</Reference>

Просмотреть файл

@ -152,7 +152,7 @@ namespace Microsoft.Toolkit.Uwp.UI.Controls
ActiveBlades.Add(blade);
UpdateLayout();
// Need to do this because of touch. See more information here: https://github.com/windows-toolkit/WindowsCommunityToolkit/issues/760#issuecomment-276466464
// Need to do this because of touch. See more information here: https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/760#issuecomment-276466464
var dispatcherQueue = DispatcherQueue.GetForCurrentThread();
await dispatcherQueue.EnqueueAsync(
() =>

Просмотреть файл

@ -4,29 +4,37 @@
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Default">
<SolidColorBrush x:Key="SystemControlSplitterPointerOver" Color="{ThemeResource SystemBaseLowColor}" />
<SolidColorBrush x:Key="SystemControlSplitterPressed" Color="{ThemeResource SystemBaseHighColor}" />
<SolidColorBrush x:Key="SystemControlSplitterPointerOver"
Color="{ThemeResource SystemBaseLowColor}" />
<SolidColorBrush x:Key="SystemControlSplitterPressed"
Color="{ThemeResource SystemBaseHighColor}" />
</ResourceDictionary>
<ResourceDictionary x:Key="HighContrast">
<SolidColorBrush x:Key="SystemControlSplitterPointerOver" Color="{ThemeResource SystemColorHighlightColor}" />
<SolidColorBrush x:Key="SystemControlSplitterPressed" Color="{ThemeResource SystemColorHighlightColor}" />
<SolidColorBrush x:Key="SystemControlSplitterPointerOver"
Color="{ThemeResource SystemColorHighlightColor}" />
<SolidColorBrush x:Key="SystemControlSplitterPressed"
Color="{ThemeResource SystemColorHighlightColor}" />
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
<Style TargetType="local:GridSplitter">
<Setter Property="IsTabStop" Value="True"></Setter>
<Setter Property="UseSystemFocusVisuals" Value="True"></Setter>
<Setter Property="HorizontalAlignment" Value="Stretch"></Setter>
<Setter Property="VerticalAlignment" Value="Stretch"></Setter>
<Setter Property="IsFocusEngagementEnabled" Value="True"></Setter>
<Setter Property="MinWidth" Value="16"></Setter>
<Setter Property="MinHeight" Value="16"></Setter>
<Setter Property="Background" Value="{ThemeResource SystemControlHighlightChromeHighBrush}"></Setter>
<Setter Property="IsTabStop" Value="True" />
<Setter Property="UseSystemFocusVisuals" Value="True" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Stretch" />
<Setter Property="IsFocusEngagementEnabled" Value="True" />
<Setter Property="MinWidth" Value="16" />
<Setter Property="MinHeight" Value="16" />
<Setter Property="Background" Value="{ThemeResource SystemControlHighlightChromeHighBrush}" />
<Setter Property="GripperForeground" Value="{ThemeResource SystemControlForegroundAltHighBrush}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:GridSplitter">
<Grid x:Name="RootGrid" Background="{TemplateBinding Background}">
<Grid x:Name="RootGrid"
Background="{TemplateBinding Background}">
<ContentPresenter HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
Content="{TemplateBinding Element}" />
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="GridSplitterStates">
<VisualState x:Name="Normal" />
@ -42,7 +50,6 @@
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<ContentPresenter Content="{TemplateBinding Element}" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" />
</Grid>
</ControlTemplate>
</Setter.Value>

Просмотреть файл

@ -2,9 +2,13 @@
<PropertyGroup>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
<Title>Windows Community Toolkit Layout</Title>
<RootNamespace>Microsoft.Toolkit.Uwp.UI.Controls</RootNamespace>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - Layout Controls</Title>
<Description>
This library provides XAML layout controls. It is part of the Windows Community Toolkit.
This library provides XAML layout controls. It is a part of the Windows Community Toolkit.
Controls:
- BladeView: Provides a horizontal collection of blades for drilling into detailed scenarios.
@ -18,7 +22,7 @@
- OrbitView: Positions items in a circle around a center element and supports orbits and anchors.
</Description>
<PackageTags>
Windows;Community;Toolkit;WCT;
Controls;XAML;UI;
Blade;View ;BladeView ;
Carousel ;
Expander ;
@ -29,35 +33,20 @@
List;Details;View ;ListDetailsView ;ListDetails ;
Orbit;View ;OrbitView ;
</PackageTags>
<RootNamespace>Microsoft.Toolkit.Uwp.UI.Controls</RootNamespace>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI\Microsoft.Toolkit.Uwp.UI.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\Microsoft.Toolkit.Uwp.UI.Controls.Core\ControlHelpers.XamlHost.cs" Link="ControlHelpers.XamlHost.cs" />
<None Include="VisualStudioToolsManifest.xml" Pack="true" PackagePath="tools" />
<None Include="$(OutDir)\Design\$(MSBuildProjectName).Design*.dll;$(OutDir)\Design\$(MSBuildProjectName).Design*.pdb" Pack="true" PackagePath="lib\$(TargetFramework)\Design" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.UI.Xaml" Version="2.5.0" />
</ItemGroup>
<ItemGroup>
<PRIResource Include="Strings\en-us\Resources.resw" />
</ItemGroup>
<!-- https://weblogs.asp.net/rweigelt/disable-warnings-in-generated-c-files-of-uwp-app -->
<Target Name="PragmaWarningDisablePrefixer" AfterTargets="MarkupCompilePass2">
<ItemGroup>
<GeneratedCSFiles Include="**\*.g.cs;**\*.g.i.cs" />
</ItemGroup>
<Message Text="CSFiles: @(GeneratedCSFiles->'&quot;%(Identity)&quot;')" />
<Exec Command="for %%f in (@(GeneratedCSFiles->'&quot;%(Identity)&quot;')) do echo #pragma warning disable &gt; %%f.temp &amp;&amp; type %%f &gt;&gt; %%f.temp &amp;&amp; move /y %%f.temp %%f &gt; NUL" />
</Target>
<ItemGroup>
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI\Microsoft.Toolkit.Uwp.UI.csproj" />
</ItemGroup>
<Import Project="$(BuildToolsDirectory)Windows.Toolkit.UWP.Controls.targets" />
</Project>

Просмотреть файл

@ -52,6 +52,7 @@
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="Windows, Version=255.255.255.255, Culture=neutral, processorArchitecture=MSIL">
<Private>False</Private>
<SpecificVersion>False</SpecificVersion>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\UnionMetadata\10.0.17763.0\Windows.winmd</HintPath>
</Reference>
@ -63,12 +64,12 @@
<Reference Include="System.Xaml" />
<Reference Include="System.Runtime.WindowsRuntime.UI.Xaml" />
<Reference Include="Windows.Foundation.FoundationContract">
<HintPath>$(ProgramFiles)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmd</HintPath>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmd</HintPath>
<Aliases>WindowsRuntime</Aliases>
<Private>False</Private>
</Reference>
<Reference Include="Windows.Foundation.UniversalApiContract">
<HintPath>$(ProgramFiles)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.UniversalApiContract\7.0.0.0\Windows.Foundation.UniversalApiContract.winmd</HintPath>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.UniversalApiContract\7.0.0.0\Windows.Foundation.UniversalApiContract.winmd</HintPath>
<Aliases>WindowsRuntime</Aliases>
<Private>False</Private>
</Reference>

Просмотреть файл

@ -2,50 +2,41 @@
<PropertyGroup>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
<Title>Windows Community Toolkit Controls Markdown</Title>
<Description>
This library provides a XAML MarkdownTextBlock control, an efficient and extensible control that can parse and render markdown. It is part of the Windows Community Toolkit.
</Description>
<PackageTags>Windows;Community;Toolkit;WCT;UWP;Controls;XAML;Markdown;Text;Block;MarkdownTextBlock</PackageTags>
<RootNamespace>Microsoft.Toolkit.Uwp.UI.Controls</RootNamespace>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - Markdown Control</Title>
<Description>
This library provides a XAML MarkdownTextBlock control, an efficient and extensible control that can parse and render markdown. It is a part of the Windows Community Toolkit.
</Description>
<PackageTags>Controls;XAML;UI;Markdown;Text;Block;MarkdownTextBlock</PackageTags>
</PropertyGroup>
<ItemGroup>
<None Include="VisualStudioToolsManifest.xml" Pack="true" PackagePath="tools" />
<None Include="$(OutDir)\Design\$(MSBuildProjectName).Design*.dll;$(OutDir)\Design\$(MSBuildProjectName).Design*.pdb" Pack="true" PackagePath="lib\$(TargetFramework)\Design" />
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI\Microsoft.Toolkit.Uwp.UI.csproj" />
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI.Controls.Core\Microsoft.Toolkit.Uwp.UI.Controls.Core.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="ColorCode.UWP" Version="2.0.6" />
<PackageReference Include="Microsoft.UI.Xaml" Version="2.5.0" />
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI.Controls.Core\Microsoft.Toolkit.Uwp.UI.Controls.Core.csproj" />
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI\Microsoft.Toolkit.Uwp.UI.csproj" />
</ItemGroup>
<!-- https://weblogs.asp.net/rweigelt/disable-warnings-in-generated-c-files-of-uwp-app -->
<Target Name="PragmaWarningDisablePrefixer" AfterTargets="MarkupCompilePass2">
<ItemGroup>
<GeneratedCSFiles Include="**\*.g.cs;**\*.g.i.cs" />
</ItemGroup>
<Message Text="CSFiles: @(GeneratedCSFiles->'&quot;%(Identity)&quot;')" />
<Exec Command="for %%f in (@(GeneratedCSFiles->'&quot;%(Identity)&quot;')) do echo #pragma warning disable &gt; %%f.temp &amp;&amp; type %%f &gt;&gt; %%f.temp &amp;&amp; move /y %%f.temp %%f &gt; NUL" />
</Target>
<Import Project="$(BuildToolsDirectory)Windows.Toolkit.UWP.Controls.targets" />
<!--
Required workaround for ProjectReference inclusion of the Controls package
The UWP project system is including the Controls resources in the pri file because
it doesn't know it'll be an independent package later during packing.
Therefore, we need to remove these extra resources in the PRI pipeline so the
Markdown pri file is properly generated and doesn't include duplicate references to Control resources.
HACK: Fix the 'ProjectReference' inclusion of duplicate UWP resources.
The UWP project system includes the 'Controls.Core' project's resources because
it doesn't know, it'll be an independent package later during packing.
Therefore, we need to remove these extra resources in the packaging pipeline.
-->
<Target Name="RemoveUnwantedPri" AfterTargets="GetPackagingOutputs">
<!--<Message Text="Files Before: @(PackagingOutputs)" Importance="high" />-->
<Target Name="_RemoveUnwantedResources" AfterTargets="GetPackagingOutputs">
<!--<Message Text="Package Files Before: @(PackagingOutputs)" Importance="High" />-->
<ItemGroup>
<PackagingOutputs Remove="@(PackagingOutputs)" Condition="'%(PackagingOutputs.Filename)%(PackagingOutputs.Extension)' == 'Microsoft.Toolkit.Uwp.UI.Controls.Core.pri'" />
<PackagingOutputs Remove="@(PackagingOutputs)" Condition="$([System.String]::new('%(PackagingOutputs.TargetPath)').StartsWith('Microsoft.Toolkit.Uwp.UI.Controls.Core\'))" />
</ItemGroup>
<!--<Message Text="Files After: @(PackagingOutputs)" Importance="high" />-->
<!--<Message Text="Package Files After: @(PackagingOutputs)" Importance="High" />-->
</Target>
</Project>

Просмотреть файл

@ -6,6 +6,6 @@ namespace Microsoft.Toolkit.Parsers
{
internal static class Constants
{
internal const string ParserObsoleteMsg = "Parsing code has been deprecated, we suggest using Markdig. See https://github.com/windows-toolkit/WindowsCommunityToolkit/issues/3200 for more info.";
internal const string ParserObsoleteMsg = "Parsing code has been deprecated, we suggest using Markdig. See https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/3200 for more info.";
}
}

Просмотреть файл

@ -66,7 +66,7 @@ namespace Microsoft.Toolkit.Parsers.Markdown.Inlines
}
/// <summary>
/// Attempts to parse an image e.g. "![Toolkit logo](https://raw.githubusercontent.com/windows-toolkit/WindowsCommunityToolkit/master/Microsoft.Toolkit.Uwp.SampleApp/Assets/ToolkitLogo.png)".
/// Attempts to parse an image e.g. "![Toolkit logo](https://raw.githubusercontent.com/CommunityToolkit/WindowsCommunityToolkit/master/Microsoft.Toolkit.Uwp.SampleApp/Assets/ToolkitLogo.png)".
/// </summary>
/// <param name="markdown"> The markdown text. </param>
/// <param name="start"> The location to start parsing. </param>

Просмотреть файл

@ -2,9 +2,13 @@
<PropertyGroup>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
<Title>Windows Community Toolkit Media Controls</Title>
<RootNamespace>Microsoft.Toolkit.Uwp.UI.Controls</RootNamespace>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - Media Controls</Title>
<Description>
This library provides controls backed by win2d for use in XAML. It is part of the Windows Community Toolkit.
This library provides controls backed by win2d for use in XAML. It is a part of the Windows Community Toolkit.
Controls:
- Eyedropper: Eyedropper allows user to pick up a color from anywhere in there application.
@ -12,18 +16,16 @@
- InfiniteCanvas: Supports Infinite Scrolling, Ink, Text, Format Text, Zoom in/out, Redo, Undo, Export &amp; Import.
</Description>
<PackageTags>
Windows;Community;Toolkit;WCT;UWP;Controls;XAML;
Controls;XAML;UI;
Eye;Dropper ;EyeDropper ;
Image;Cropper ;ImageCropper ;Crop;
Infinite;Canvas;InfiniteCanvas;
</PackageTags>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.UI.Xaml" Version="2.5.0" />
<PackageReference Include="System.Text.Json" Version="5.0.2" />
<PackageReference Include="Win2D.uwp" Version="1.25.0" />
<Compile Include="..\Microsoft.Toolkit.Uwp.UI.Controls.Core\ControlHelpers.XamlHost.cs" Link="ControlHelpers.XamlHost.cs" />
<None Include="VisualStudioToolsManifest.xml" Pack="true" PackagePath="tools" />
</ItemGroup>
<ItemGroup>
@ -31,18 +33,9 @@
</ItemGroup>
<ItemGroup>
<Compile Include="..\Microsoft.Toolkit.Uwp.UI.Controls.Core\ControlHelpers.XamlHost.cs" Link="ControlHelpers.XamlHost.cs" />
<None Include="VisualStudioToolsManifest.xml" Pack="true" PackagePath="tools" />
<None Include="$(OutDir)\Design\$(MSBuildProjectName).Design*.dll;$(OutDir)\Design\$(MSBuildProjectName).Design*.pdb" Pack="true" PackagePath="lib\$(TargetFramework)\Design" />
<PackageReference Include="Microsoft.UI.Xaml" Version="2.5.0" />
<PackageReference Include="System.Text.Json" Version="5.0.2" />
<PackageReference Include="Win2D.uwp" Version="1.25.0" />
</ItemGroup>
<!-- https://weblogs.asp.net/rweigelt/disable-warnings-in-generated-c-files-of-uwp-app -->
<Target Name="PragmaWarningDisablePrefixer" AfterTargets="MarkupCompilePass2">
<ItemGroup>
<GeneratedCSFiles Include="**\*.g.cs;**\*.g.i.cs" />
</ItemGroup>
<Message Text="CSFiles: @(GeneratedCSFiles->'&quot;%(Identity)&quot;')" />
<Exec Command="for %%f in (@(GeneratedCSFiles->'&quot;%(Identity)&quot;')) do echo #pragma warning disable &gt; %%f.temp &amp;&amp; type %%f &gt;&gt; %%f.temp &amp;&amp; move /y %%f.temp %%f &gt; NUL" />
</Target>
</Project>

Просмотреть файл

@ -52,6 +52,7 @@
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="Windows, Version=255.255.255.255, Culture=neutral, processorArchitecture=MSIL">
<Private>False</Private>
<SpecificVersion>False</SpecificVersion>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\UnionMetadata\10.0.17763.0\Windows.winmd</HintPath>
</Reference>
@ -63,12 +64,12 @@
<Reference Include="System.Xaml" />
<Reference Include="System.Runtime.WindowsRuntime.UI.Xaml" />
<Reference Include="Windows.Foundation.FoundationContract">
<HintPath>$(ProgramFiles)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmd</HintPath>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmd</HintPath>
<Aliases>WindowsRuntime</Aliases>
<Private>False</Private>
</Reference>
<Reference Include="Windows.Foundation.UniversalApiContract">
<HintPath>$(ProgramFiles)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.UniversalApiContract\7.0.0.0\Windows.Foundation.UniversalApiContract.winmd</HintPath>
<HintPath>$(MSBuildProgramFiles32)\Windows Kits\10\References\10.0.17763.0\Windows.Foundation.UniversalApiContract\7.0.0.0\Windows.Foundation.UniversalApiContract.winmd</HintPath>
<Aliases>WindowsRuntime</Aliases>
<Private>False</Private>
</Reference>

Просмотреть файл

@ -2,9 +2,13 @@
<PropertyGroup>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
<Title>Windows Community Toolkit Primitive Controls</Title>
<RootNamespace>Microsoft.Toolkit.Uwp.UI.Controls</RootNamespace>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - Primitive Controls</Title>
<Description>
This library provides controls for use in XAML which don't provide their own style. It is part of the Windows Community Toolkit.
This library provides controls for use in XAML which don't provide their own style. It is a part of the Windows Community Toolkit.
Controls:
- AdaptiveGridView: Presents items in an evenly-spaced set of columns to fill the total available space.
@ -17,7 +21,7 @@
- WrapPanel: Positions child elements in sequential position from left to right and breaks content to the next line.
</Description>
<PackageTags>
Windows;Community;Toolkit;WCT;UWP;Controls;XAML;
Controls;XAML;UI;
Adaptive;Grid;View;AdaptiveGridView;GridView ;AdaptiveGrid ;
Dock;Panel ;DockPanel ;
Staggered;Layout ;StaggeredLayout ;
@ -27,31 +31,12 @@
Wrap;Layout ;WrapLayout ;
Wrap;Panel ;WrapPanel ;
</PackageTags>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI\Microsoft.Toolkit.Uwp.UI.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.UI.Xaml" Version="2.5.0" />
</ItemGroup>
<ItemGroup>
<None Include="VisualStudioToolsManifest.xml" Pack="true" PackagePath="tools" />
<None Include="$(OutDir)\Design\$(MSBuildProjectName).Design*.dll;$(OutDir)\Design\$(MSBuildProjectName).Design*.pdb" Pack="true" PackagePath="lib\$(TargetFramework)\Design" />
</ItemGroup>
<Import Project="$(MSBuildSDKExtrasTargets)" Condition="Exists('$(MSBuildSDKExtrasTargets)')" />
<!-- https://weblogs.asp.net/rweigelt/disable-warnings-in-generated-c-files-of-uwp-app -->
<Target Name="PragmaWarningDisablePrefixer" AfterTargets="MarkupCompilePass2">
<ItemGroup>
<GeneratedCSFiles Include="**\*.g.cs;**\*.g.i.cs" />
</ItemGroup>
<Message Text="CSFiles: @(GeneratedCSFiles->'&quot;%(Identity)&quot;')" />
<Exec Command="for %%f in (@(GeneratedCSFiles->'&quot;%(Identity)&quot;')) do echo #pragma warning disable &gt; %%f.temp &amp;&amp; type %%f &gt;&gt; %%f.temp &amp;&amp; move /y %%f.temp %%f &gt; NUL" />
</Target>
<Import Project="$(BuildToolsDirectory)Windows.Toolkit.UWP.Controls.targets" />
</Project>

Просмотреть файл

@ -1,18 +1,24 @@
<Project Sdk="MSBuild.Sdk.Extras">
<PropertyGroup>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
<Title>Windows Community Toolkit Controls</Title>
<Description>
This library provides Controls, Panels, ItemsRepeater Layouts, and various other classes &amp; helpers for XAML UI development with UWP. It is part of the Windows Community Toolkit.
This package provides no actual code and is only an aggregate of its dependencies. You can find out how to optimize your app after development at https://aka.ms/wct/optimize
</Description>
<IncludeBuildOutput>false</IncludeBuildOutput>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - UI Controls</Title>
<Description>
This library provides Controls, Panels, ItemsRepeater Layouts, and various other classes &amp; helpers for XAML UI development with UWP. It is a part of the Windows Community Toolkit.
This package is only an aggregate of its dependencies, meaning it's a meta-package and has no assemblies. You can find out how to optimize your app after development at https://aka.ms/wct/optimize
</Description>
</PropertyGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)ReadMe.txt" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI.Controls.Primitives\Microsoft.Toolkit.Uwp.UI.Controls.Primitives.csproj" />
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI.Controls.Core\Microsoft.Toolkit.Uwp.UI.Controls.Core.csproj" />
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI.Controls.Media\Microsoft.Toolkit.Uwp.UI.Controls.Media.csproj" />

Просмотреть файл

@ -1,11 +1,13 @@
<Project Sdk="MSBuild.Sdk.Extras">
<PropertyGroup>
<TargetFramework>uap10.0.17763</TargetFramework>
<LangVersion>9.0</LangVersion>
<Title>Windows Community Toolkit UI Media</Title>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - UI Media</Title>
<Description>
This library provides UI brushes. It is part of the Windows Community Toolkit.
This library provides UI brushes. It is a part of the Windows Community Toolkit.
Media:
- AcrylicBrush: A custom Brush that that implements an acrylic effect with full control over all parameters.
@ -39,7 +41,7 @@
Geometry:
- CanvasPathGeometry: A class that parses Win2d Path Mini Language and converts it to CanvasGeometry, CanvasBrush, CanvasStroke, CanvasStrokeStyle or Color.
</Description>
<PackageTags>Windows;Community;Toolkit;WCT;UWP;UI;XAML;brushes;blur;effects;animations</PackageTags>
<PackageTags>UI;XAML;Acrylic;Brushes;Blur;Effects;Canvas;Geometry</PackageTags>
</PropertyGroup>
<ItemGroup>

Просмотреть файл

@ -28,11 +28,6 @@ namespace Microsoft.Toolkit.Uwp.UI
/// </summary>
public static readonly DependencyProperty AlternateItemTemplateProperty = DependencyProperty.RegisterAttached("AlternateItemTemplate", typeof(DataTemplate), typeof(ListViewExtensions), new PropertyMetadata(null, OnAlternateItemTemplatePropertyChanged));
/// <summary>
/// Attached <see cref="DependencyProperty"/> for setting the container content stretch direction on the <see cref="Windows.UI.Xaml.Controls.ListViewBase"/>
/// </summary>
public static readonly DependencyProperty ItemContainerStretchDirectionProperty = DependencyProperty.RegisterAttached("ItemContainerStretchDirection", typeof(ItemContainerStretchDirection), typeof(ListViewExtensions), new PropertyMetadata(null, OnItemContainerStretchDirectionPropertyChanged));
/// <summary>
/// Gets the alternate <see cref="Brush"/> associated with the specified <see cref="Windows.UI.Xaml.Controls.ListViewBase"/>
/// </summary>
@ -73,26 +68,6 @@ namespace Microsoft.Toolkit.Uwp.UI
obj.SetValue(AlternateItemTemplateProperty, value);
}
/// <summary>
/// Gets the stretch <see cref="ItemContainerStretchDirection"/> associated with the specified <see cref="Windows.UI.Xaml.Controls.ListViewBase"/>
/// </summary>
/// <param name="obj">The <see cref="Windows.UI.Xaml.Controls.ListViewBase"/> to get the associated <see cref="ItemContainerStretchDirection"/> from</param>
/// <returns>The <see cref="ItemContainerStretchDirection"/> associated with the <see cref="Windows.UI.Xaml.Controls.ListViewBase"/></returns>
public static ItemContainerStretchDirection GetItemContainerStretchDirection(Windows.UI.Xaml.Controls.ListViewBase obj)
{
return (ItemContainerStretchDirection)obj.GetValue(ItemContainerStretchDirectionProperty);
}
/// <summary>
/// Sets the stretch <see cref="ItemContainerStretchDirection"/> associated with the specified <see cref="Windows.UI.Xaml.Controls.ListViewBase"/>
/// </summary>
/// <param name="obj">The <see cref="Windows.UI.Xaml.Controls.ListViewBase"/> to associate the <see cref="ItemContainerStretchDirection"/> with</param>
/// <param name="value">The <see cref="ItemContainerStretchDirection"/> for binding to the <see cref="Windows.UI.Xaml.Controls.ListViewBase"/></param>
public static void SetItemContainerStretchDirection(Windows.UI.Xaml.Controls.ListViewBase obj, ItemContainerStretchDirection value)
{
obj.SetValue(ItemContainerStretchDirectionProperty, value);
}
private static void OnAlternateColorPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args)
{
Windows.UI.Xaml.Controls.ListViewBase listViewBase = sender as Windows.UI.Xaml.Controls.ListViewBase;

Просмотреть файл

@ -0,0 +1,207 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Threading.Tasks;
using Windows.Foundation;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
namespace Microsoft.Toolkit.Uwp.UI
{
/// <summary>
/// Smooth scroll the list to bring specified item into view
/// </summary>
public static partial class ListViewExtensions
{
/// <summary>
/// Smooth scrolling the list to bring the specified index into view
/// </summary>
/// <param name="listViewBase">List to scroll</param>
/// <param name="index">The index to bring into view. Index can be negative.</param>
/// <param name="itemPlacement">Set the item placement after scrolling</param>
/// <param name="disableAnimation">Set true to disable animation</param>
/// <param name="scrollIfVisible">Set false to disable scrolling when the corresponding item is in view</param>
/// <param name="additionalHorizontalOffset">Adds additional horizontal offset</param>
/// <param name="additionalVerticalOffset">Adds additional vertical offset</param>
/// <returns>Note: Even though this return <see cref="Task"/>, it will not wait until the scrolling completes</returns>
public static async Task SmoothScrollIntoViewWithIndexAsync(this ListViewBase listViewBase, int index, ScrollItemPlacement itemPlacement = ScrollItemPlacement.Default, bool disableAnimation = false, bool scrollIfVisible = true, int additionalHorizontalOffset = 0, int additionalVerticalOffset = 0)
{
if (index > (listViewBase.Items.Count - 1))
{
index = listViewBase.Items.Count - 1;
}
if (index < -listViewBase.Items.Count)
{
index = -listViewBase.Items.Count;
}
index = (index < 0) ? (index + listViewBase.Items.Count) : index;
bool isVirtualizing = default;
double previousXOffset = default, previousYOffset = default;
var scrollViewer = listViewBase.FindDescendant<ScrollViewer>();
var selectorItem = listViewBase.ContainerFromIndex(index) as SelectorItem;
// If selectorItem is null then the panel is virtualized.
// So in order to get the container of the item we need to scroll to that item first and then use ContainerFromIndex
if (selectorItem == null)
{
isVirtualizing = true;
previousXOffset = scrollViewer.HorizontalOffset;
previousYOffset = scrollViewer.VerticalOffset;
var tcs = new TaskCompletionSource<object>();
void ViewChanged(object obj, ScrollViewerViewChangedEventArgs args) => tcs.TrySetResult(result: null);
try
{
scrollViewer.ViewChanged += ViewChanged;
listViewBase.ScrollIntoView(listViewBase.Items[index], ScrollIntoViewAlignment.Leading);
await tcs.Task;
}
finally
{
scrollViewer.ViewChanged -= ViewChanged;
}
selectorItem = (SelectorItem)listViewBase.ContainerFromIndex(index);
}
var transform = selectorItem.TransformToVisual((UIElement)scrollViewer.Content);
var position = transform.TransformPoint(new Point(0, 0));
// Scrolling back to previous position
if (isVirtualizing)
{
var tcs = new TaskCompletionSource<object>();
void ViewChanged(object obj, ScrollViewerViewChangedEventArgs args) => tcs.TrySetResult(result: null);
try
{
scrollViewer.ViewChanged += ViewChanged;
scrollViewer.ChangeView(previousXOffset, previousYOffset, zoomFactor: null, disableAnimation: true);
await tcs.Task;
}
finally
{
scrollViewer.ViewChanged -= ViewChanged;
}
}
var listViewBaseWidth = listViewBase.ActualWidth;
var selectorItemWidth = selectorItem.ActualWidth;
var listViewBaseHeight = listViewBase.ActualHeight;
var selectorItemHeight = selectorItem.ActualHeight;
previousXOffset = scrollViewer.HorizontalOffset;
previousYOffset = scrollViewer.VerticalOffset;
var minXPosition = position.X - listViewBaseWidth + selectorItemWidth;
var minYPosition = position.Y - listViewBaseHeight + selectorItemHeight;
var maxXPosition = position.X;
var maxYPosition = position.Y;
double finalXPosition, finalYPosition;
// If the Item is in view and scrollIfVisible is false then we don't need to scroll
if (!scrollIfVisible && (previousXOffset <= maxXPosition && previousXOffset >= minXPosition) && (previousYOffset <= maxYPosition && previousYOffset >= minYPosition))
{
finalXPosition = previousXOffset;
finalYPosition = previousYOffset;
}
else
{
switch (itemPlacement)
{
case ScrollItemPlacement.Default:
if (previousXOffset <= maxXPosition && previousXOffset >= minXPosition)
{
finalXPosition = previousXOffset + additionalHorizontalOffset;
}
else if (Math.Abs(previousXOffset - minXPosition) < Math.Abs(previousXOffset - maxXPosition))
{
finalXPosition = minXPosition + additionalHorizontalOffset;
}
else
{
finalXPosition = maxXPosition + additionalHorizontalOffset;
}
if (previousYOffset <= maxYPosition && previousYOffset >= minYPosition)
{
finalYPosition = previousYOffset + additionalVerticalOffset;
}
else if (Math.Abs(previousYOffset - minYPosition) < Math.Abs(previousYOffset - maxYPosition))
{
finalYPosition = minYPosition + additionalVerticalOffset;
}
else
{
finalYPosition = maxYPosition + additionalVerticalOffset;
}
break;
case ScrollItemPlacement.Left:
finalXPosition = maxXPosition + additionalHorizontalOffset;
finalYPosition = previousYOffset + additionalVerticalOffset;
break;
case ScrollItemPlacement.Top:
finalXPosition = previousXOffset + additionalHorizontalOffset;
finalYPosition = maxYPosition + additionalVerticalOffset;
break;
case ScrollItemPlacement.Center:
var centreX = (listViewBaseWidth - selectorItemWidth) / 2.0;
var centreY = (listViewBaseHeight - selectorItemHeight) / 2.0;
finalXPosition = maxXPosition - centreX + additionalHorizontalOffset;
finalYPosition = maxYPosition - centreY + additionalVerticalOffset;
break;
case ScrollItemPlacement.Right:
finalXPosition = minXPosition + additionalHorizontalOffset;
finalYPosition = previousYOffset + additionalVerticalOffset;
break;
case ScrollItemPlacement.Bottom:
finalXPosition = previousXOffset + additionalHorizontalOffset;
finalYPosition = minYPosition + additionalVerticalOffset;
break;
default:
finalXPosition = previousXOffset + additionalHorizontalOffset;
finalYPosition = previousYOffset + additionalVerticalOffset;
break;
}
}
scrollViewer.ChangeView(finalXPosition, finalYPosition, zoomFactor: null, disableAnimation);
}
/// <summary>
/// Smooth scrolling the list to bring the specified data item into view
/// </summary>
/// <param name="listViewBase">List to scroll</param>
/// <param name="item">The data item to bring into view</param>
/// <param name="itemPlacement">Set the item placement after scrolling</param>
/// <param name="disableAnimation">Set true to disable animation</param>
/// <param name="scrollIfVisibile">Set true to disable scrolling when the corresponding item is in view</param>
/// <param name="additionalHorizontalOffset">Adds additional horizontal offset</param>
/// <param name="additionalVerticalOffset">Adds additional vertical offset</param>
/// <returns>Note: Even though this return <see cref="Task"/>, it will not wait until the scrolling completes</returns>
public static async Task SmoothScrollIntoViewWithItemAsync(this ListViewBase listViewBase, object item, ScrollItemPlacement itemPlacement = ScrollItemPlacement.Default, bool disableAnimation = false, bool scrollIfVisibile = true, int additionalHorizontalOffset = 0, int additionalVerticalOffset = 0)
{
await SmoothScrollIntoViewWithIndexAsync(listViewBase, listViewBase.Items.IndexOf(item), itemPlacement, disableAnimation, scrollIfVisibile, additionalHorizontalOffset, additionalVerticalOffset);
}
}
}

Просмотреть файл

@ -0,0 +1,44 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System.Collections.Generic;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Media;
namespace Microsoft.Toolkit.Uwp.UI
{
/// <summary>
/// Provides attached dependency properties for the <see cref="Windows.UI.Xaml.Controls.ListViewBase"/>
/// </summary>
public static partial class ListViewExtensions
{
/// <summary>
/// Attached <see cref="DependencyProperty"/> for setting the container content stretch direction on the <see cref="Windows.UI.Xaml.Controls.ListViewBase"/>
/// </summary>
public static readonly DependencyProperty ItemContainerStretchDirectionProperty = DependencyProperty.RegisterAttached("ItemContainerStretchDirection", typeof(ItemContainerStretchDirection), typeof(ListViewExtensions), new PropertyMetadata(null, OnItemContainerStretchDirectionPropertyChanged));
/// <summary>
/// Gets the stretch <see cref="ItemContainerStretchDirection"/> associated with the specified <see cref="Windows.UI.Xaml.Controls.ListViewBase"/>
/// </summary>
/// <param name="obj">The <see cref="Windows.UI.Xaml.Controls.ListViewBase"/> to get the associated <see cref="ItemContainerStretchDirection"/> from</param>
/// <returns>The <see cref="ItemContainerStretchDirection"/> associated with the <see cref="Windows.UI.Xaml.Controls.ListViewBase"/></returns>
public static ItemContainerStretchDirection GetItemContainerStretchDirection(Windows.UI.Xaml.Controls.ListViewBase obj)
{
return (ItemContainerStretchDirection)obj.GetValue(ItemContainerStretchDirectionProperty);
}
/// <summary>
/// Sets the stretch <see cref="ItemContainerStretchDirection"/> associated with the specified <see cref="Windows.UI.Xaml.Controls.ListViewBase"/>
/// </summary>
/// <param name="obj">The <see cref="Windows.UI.Xaml.Controls.ListViewBase"/> to associate the <see cref="ItemContainerStretchDirection"/> with</param>
/// <param name="value">The <see cref="ItemContainerStretchDirection"/> for binding to the <see cref="Windows.UI.Xaml.Controls.ListViewBase"/></param>
public static void SetItemContainerStretchDirection(Windows.UI.Xaml.Controls.ListViewBase obj, ItemContainerStretchDirection value)
{
obj.SetValue(ItemContainerStretchDirectionProperty, value);
}
}
}

Просмотреть файл

@ -0,0 +1,42 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
namespace Microsoft.Toolkit.Uwp.UI
{
/// <summary>
/// Item Position
/// </summary>
public enum ScrollItemPlacement
{
/// <summary>
/// If visible then it will not scroll, if not then item will be aligned to the nearest edge
/// </summary>
Default,
/// <summary>
/// Aligned left
/// </summary>
Left,
/// <summary>
/// Aligned top
/// </summary>
Top,
/// <summary>
/// Aligned center
/// </summary>
Center,
/// <summary>
/// Aligned right
/// </summary>
Right,
/// <summary>
/// Aligned bottom
/// </summary>
Bottom
}
}

Просмотреть файл

@ -297,13 +297,18 @@ namespace Microsoft.Toolkit.Uwp.UI
// case adding data at the end of the textbox
if (oldSelectionStart >= oldText.Length && !isDeleteOrBackspace)
{
textbox.Text = textbox.Text.Substring(0, oldText.Length);
if (oldText.Length >= 0)
// ignore change(s) if oldtext is a substring of new text value
if (textbox.Text.Contains(oldText))
{
textbox.SelectionStart = oldText.Length;
}
textbox.Text = oldText;
return;
if (oldText.Length >= 0)
{
textbox.SelectionStart = oldText.Length;
}
return;
}
}
var textArray = oldText.ToCharArray();
@ -323,6 +328,9 @@ namespace Microsoft.Toolkit.Uwp.UI
var displayText = textbox.GetValue(DefaultDisplayTextProperty) as string ?? string.Empty;
if (string.IsNullOrEmpty(textbox.Text))
{
textbox.SetValue(OldTextProperty, displayText);
textbox.SetValue(OldSelectionStartProperty, 0);
textbox.SetValue(OldSelectionLengthProperty, 0);
textbox.Text = displayText;
return;
}
@ -427,4 +435,4 @@ namespace Microsoft.Toolkit.Uwp.UI
return selectionIndex;
}
}
}
}

Просмотреть файл

@ -1,11 +1,15 @@
<Project Sdk="MSBuild.Sdk.Extras">
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<UseWindowsDesktopSdk>true</UseWindowsDesktopSdk>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
<LangVersion>9.0</LangVersion>
<Title>Windows Community Toolkit UI</Title>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - UI</Title>
<Description>
This library provides UI components, such as XAML extensions, helpers, converters and more. It is part of the Windows Community Toolkit.
This library provides UI components, such as XAML extensions, helpers, converters and more. It is a part of the Windows Community Toolkit.
AdvancedCollectionView: It's a collection view implementation that support filtering, sorting and incremental loading. It's meant to be used in a viewmodel.
@ -39,9 +43,7 @@
- DependencyPropertyWatcher: Used to Track Changes of a Dependency Property
- ThemeListener: Class which listens for changes to Application Theme or High Contrast Modes and Signals an Event when they occur.
</Description>
<PackageTags>Windows;Community;Toolkit;WCT;UWP;UI;Converters;XAML;extensions;helpers</PackageTags>
<UseWindowsDesktopSdk>true</UseWindowsDesktopSdk>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<PackageTags>UI;XAML;ApplicationView;FrameworkElement;SurfaceDial;Matrix;Mouse;TextBoxMask;TitleBar;VisualTree;Converters;Extensions;Helpers</PackageTags>
</PropertyGroup>
<ItemGroup>

Просмотреть файл

@ -2,10 +2,12 @@
<PropertyGroup>
<TargetFrameworks>uap10.0.17763</TargetFrameworks>
<Title>Windows Community Toolkit</Title>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - Common (UWP)</Title>
<Description>This package includes code only helpers such as Colors conversion tool, Storage file handling, a Stream helper class, etc.</Description>
<PackageTags>Windows;Community;Toolkit;WCT;UWP</PackageTags>
<LangVersion>9.0</LangVersion>
<PackageTags>Storage;File;Folder;Color;Conversion;Stream;Helpers;Extensions</PackageTags>
</PropertyGroup>
<ItemGroup>

Просмотреть файл

@ -50,7 +50,7 @@
<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.props" />
<PropertyGroup>
<ProjectGuid>54349ab0-9e41-4aa6-849c-ec9ce80cdd2a</ProjectGuid>
<TargetPlatformVersion>10.0.18362.0</TargetPlatformVersion>
<TargetPlatformVersion>10.0.19041.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
<DefaultLanguage>en-US</DefaultLanguage>
<AppxPackageSigningEnabled>false</AppxPackageSigningEnabled>

Просмотреть файл

@ -1,19 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UseWPF>true</UseWPF>
<OutputType>WinExe</OutputType>
<ApplicationIcon>ToolkitIcon.ico</ApplicationIcon>
<IsPackable>false</IsPackable>
<TargetFrameworks>netcoreapp3.1</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Windows.SDK.Contracts" Version="10.0.19041.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.Notifications\Microsoft.Toolkit.Uwp.Notifications.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Windows.SDK.Contracts" Version="10.0.19041.1" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,3 +0,0 @@
# Windows Community Toolkit - WPF and Windows Forms
The source has moved to a new repository: https://github.com/windows-toolkit/Microsoft.Toolkit.Win32

Просмотреть файл

@ -0,0 +1,3 @@
# Windows Community Toolkit - WPF and Windows Forms
The source has moved to a new repository: https://github.com/CommunityToolkit/Microsoft.Toolkit.Win32

Просмотреть файл

@ -1,17 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard1.4;netstandard2.0;netstandard2.1;net5.0</TargetFrameworks>
<LangVersion>9.0</LangVersion>
<Nullable>Enable</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Nullable>enable</Nullable>
<Title>Windows Community Toolkit .NET Standard</Title>
<TargetFrameworks>netstandard1.4;netstandard2.0;netstandard2.1;net5.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup>
<Title>Windows Community Toolkit - Common (.NET Standard)</Title>
<Description>
This package includes .NET Standard code only helpers such as:
- IncrementalLoadingCollection: Simplifies the definition and usage of collections whose items can be loaded incrementally only when needed by the view.
- String extensions and array extensions: These extensions make working with string and arrays easier.
</Description>
<PackageTags>Windows;Community;Toolkit;WCT;UWP;Incremental;Loading;Collection;IncrementalLoadingCollection;String;Array;extensions;helpers</PackageTags>
<PackageTags>Incremental;Loading;Collection;IncrementalLoadingCollection;String;Array;Extensions;Helpers</PackageTags>
</PropertyGroup>
<!-- .NET Standard 2.1 and .NET 5 already have [NotNullIfNotNull] and [NotNullWhen] -->

Просмотреть файл

@ -4,8 +4,8 @@ The Windows Community Toolkit is a collection of helper functions, custom contro
| Target | Branch | Status | Recommended package version |
| ------ | ------ | ------ | ------ |
| Production | rel/7.0.2 | [![Build Status](https://dev.azure.com/dotnet/WindowsCommunityToolkit/_apis/build/status/Toolkit-CI?branchName=rel/7.0.2)](https://dev.azure.com/dotnet/WindowsCommunityToolkit/_build/latest?definitionId=10&branchName=rel/7.0.2) | [![NuGet](https://img.shields.io/nuget/v/Microsoft.Toolkit.Uwp.svg)](https://www.nuget.org/profiles/Microsoft.Toolkit) |
| Pre-release beta testing | main | [![Build Status](https://dev.azure.com/dotnet/WindowsCommunityToolkit/_apis/build/status/Toolkit-CI?branchName=main)](https://dev.azure.com/dotnet/WindowsCommunityToolkit/_build/latest?definitionId=10) | [![DevOps](https://vsrm.dev.azure.com/dotnet/_apis/public/Release/badge/696bc9fd-f160-4e97-a1bd-7cbbb3b58f66/1/1)](https://dev.azure.com/dotnet/WindowsCommunityToolkit/_packaging?_a=feed&feed=WindowsCommunityToolkit-MainLatest) |
| Production | rel/7.0.2 | [![Build Status](https://dev.azure.com/dotnet/CommunityToolkit/_apis/build/status/Toolkit-CI?branchName=rel/7.0.2)](https://dev.azure.com/dotnet/CommunityToolkit/_build/latest?definitionId=10&branchName=rel/7.0.2) | [![NuGet](https://img.shields.io/nuget/v/Microsoft.Toolkit.Uwp.svg)](https://www.nuget.org/profiles/Microsoft.Toolkit) |
| Pre-release beta testing | main | [![Build Status](https://dev.azure.com/dotnet/CommunityToolkit/_apis/build/status/Toolkit-CI?branchName=main)](https://dev.azure.com/dotnet/CommunityToolkit/_build/latest?definitionId=10) | [![DevOps](https://vsrm.dev.azure.com/dotnet/_apis/public/Release/badge/696bc9fd-f160-4e97-a1bd-7cbbb3b58f66/1/1)](https://dev.azure.com/dotnet/CommunityToolkit/_packaging?_a=feed&feed=WindowsCommunityToolkit-MainLatest) |
## Getting Started :raised_hands:
Please read the [Getting Started with the Windows Community Toolkit](https://docs.microsoft.com/windows/communitytoolkit/getting-started) page for more detailed information about using the toolkit.
@ -31,9 +31,9 @@ The [Features list](https://github.com/MicrosoftDocs/WindowsCommunityToolkitDocs
* Principle **#3**: All features will be supported for two Windows SDK for Windows 10 release cycles or until another principle supersedes it.
## Roadmap :earth_americas:
Read what we [plan for next iterations](https://github.com/windows-toolkit/WindowsCommunityToolkit/milestones), and feel free to ask questions.
Read what we [plan for next iterations](https://github.com/CommunityToolkit/WindowsCommunityToolkit/milestones), and feel free to ask questions.
Check out our [Preview Packages Wiki Page](https://github.com/windows-toolkit/WindowsCommunityToolkit/wiki/Preview-Packages) to learn more about updating your NuGet sources in Visual Studio, then you can also get pre-release packages of upcoming versions to try.
Check out our [Preview Packages Wiki Page](https://github.com/CommunityToolkit/WindowsCommunityToolkit/wiki/Preview-Packages) to learn more about updating your NuGet sources in Visual Studio, then you can also get pre-release packages of upcoming versions to try.
## Code of Conduct :page_facing_up:
This project has adopted the code of conduct defined by the [Contributor Covenant](http://contributor-covenant.org/)

Просмотреть файл

@ -30,7 +30,7 @@
<AppxBundle>Always</AppxBundle>
<UapAppxPackageBuildMode>StoreUpload</UapAppxPackageBuildMode>
<PlatformTarget>$(Platform)</PlatformTarget>
<NoWarn>;2008;SA0001;SA1601</NoWarn>
<NoWarn>$(NoWarn);2008;SA1601</NoWarn>
<Prefer32Bit>true</Prefer32Bit>
<ErrorReport>prompt</ErrorReport>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -123,10 +123,10 @@
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
<Target Name="BeforeBuild">
<ItemGroup Condition="$(CurrentProject) != 'UWPBaseline' and '$(CurrentProject)' != 'UWPBaselineWinUI'">
<ToolkitNuGets Include="$(MSBuildThisFileDirectory)..\bin\nupkg\$(CurrentProject).*.nupkg" />
<ToolkitNuGet Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('%(Identity)', `$(CurrentProject).([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?.nupkg`))" Include="@(ToolkitNuGets)" />
<NuGetPackage Include="$(RepositoryDirectory)bin\nupkg\$(CurrentProject).*.nupkg" />
<NuGetPackageFiltered Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('%(Identity)', `$(CurrentProject).([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?.nupkg`))" Include="@(NuGetPackage)" />
</ItemGroup>
<Error Condition="'@(ToolkitNuGet)' == '' and $(CurrentProject) != 'UWPBaseline' and '$(CurrentProject)' != 'UWPBaselineWinUI'" Text="NuGet '$(CurrentProject).[SEMVER].nupkg' doesn't exist!" />
<Error Condition="'@(NuGetPackageFiltered)' == '' and $(CurrentProject) != 'UWPBaseline' and '$(CurrentProject)' != 'UWPBaselineWinUI'" Text="NuGet '$(CurrentProject).[SEMVER].nupkg' doesn't exist!" />
<Error Condition="'$(CurrentProject)' != 'UWPBaseline' and '$(CurrentProject)' != 'UWPBaselineWinUI' and '$(NuGetPackageVersion)' == 'To Fill In With Local Version Number'" Text="Please set 'NuGetPackageVersion' at the top of 'SmokeTest.csproj' with the version to smoke test locally." />
</Target>
<!-- No-op to avoid build error when packing solution from commandline -->

Просмотреть файл

@ -18,6 +18,7 @@
Microsoft.Toolkit.Uwp.UI;
Microsoft.Toolkit.Uwp.UI.Animations;
Microsoft.Toolkit.Uwp.UI.Behaviors;
Microsoft.Toolkit.Uwp.UI.Media;
Microsoft.Toolkit.Uwp.UI.Controls;
Microsoft.Toolkit.Uwp.UI.Controls.Core;
Microsoft.Toolkit.Uwp.UI.Controls.DataGrid;
@ -26,7 +27,6 @@
Microsoft.Toolkit.Uwp.UI.Controls.Markdown;
Microsoft.Toolkit.Uwp.UI.Controls.Media;
Microsoft.Toolkit.Uwp.UI.Controls.Primitives;
Microsoft.Toolkit.Uwp.UI.Media;
</ToolkitPackages>
</PropertyGroup>
@ -52,7 +52,7 @@
Properties="CurrentProject=%(ProjectsToBuild.Identity);Configuration=%(ProjectsToBuild.Configuration);Platform=%(ProjectsToBuild.Platform);NuGetPackageVersion=$(NuGetPackageVersion)" />
</Target>
<Target Name="ChooseProjectsToBuild" DependsOnTargets="CheckNuGets">
<Target Name="ChooseProjectsToBuild" DependsOnTargets="CheckNuGetPackages">
<ItemGroup>
<BuildPlatform Include="$(BuildPlatforms)" />
<BuildConfiguration Include="$(BuildConfigurations)" />
@ -80,14 +80,14 @@
</ItemGroup>
</Target>
<Target Name="CheckNuGets">
<Target Name="CheckNuGetPackages">
<PropertyGroup>
<ToolkitNuGets>$(MSBuildThisFileDirectory)..\bin\nupkg\*.nupkg</ToolkitNuGets>
<NuGetOutputPath>$(MSBuildThisFileDirectory)..\bin\nupkg</NuGetOutputPath>
</PropertyGroup>
<ItemGroup>
<ToolkitNuGets Include="$(ToolkitNuGets)" />
<NuGetPackage Include="$(NuGetOutputPath)\*.nupkg" />
</ItemGroup>
<Error Condition="'@(ToolkitNuGets)' == ''" Text="Directory '$(ToolkitNuGets)' is empty" />
<Error Condition="'@(NuGetPackage)' == ''" Text="Directory '$(NuGetOutputPath)' is empty" />
</Target>
</Project>

Просмотреть файл

@ -9,8 +9,8 @@ This project incorporates components from the projects listed below. The origina
2. MichaeIDietrich/UwpNotificationNetCoreTest commit 5c1a4a3 (https://github.com/MichaeIDietrich/UwpNotificationNetCoreTest), used in DesktopNotificationManagerCompat.cs to support .NET Core 3.0.
3. lbugnion/mvvmlight commit 4cbf77c (https://github.com/lbugnion/mvvmlight), from which some APIs from the `Microsoft.Toolkit.Mvvm` package take inspiration from.
4. PrivateObject/PrivateType (https://github.com/microsoft/testfx/tree/664ac7c2ac9dbfbee9d2a0ef560cfd72449dfe34/src/TestFramework/Extension.Desktop), included in UnitTests.
5. QuinnDamerell/UniversalMarkdown (https://github.com/QuinnDamerell/UniversalMarkdown) contributed by Quinn Damerell and Paul Bartrum for the MarkdownTextBlock control, relicensed to this .NET Foundation project under the MIT license upon contribution in https://github.com/windows-toolkit/WindowsCommunityToolkit/pull/772.
6. qmatteoq/DesktopBridgeHelpers commit e278153 (https://github.com/qmatteoq/DesktopBridgeHelpers), contributed by Matteo Pagani to identify if running with identity in DesktopNotificationManagerCompat.cs and DesktopBridgeHelpers.cs, relicensed to this .NET Foundation project under the MIT license upon contribution in https://github.com/windows-toolkit/WindowsCommunityToolkit/pull/3457.
5. QuinnDamerell/UniversalMarkdown (https://github.com/QuinnDamerell/UniversalMarkdown) contributed by Quinn Damerell and Paul Bartrum for the MarkdownTextBlock control, relicensed to this .NET Foundation project under the MIT license upon contribution in https://github.com/CommunityToolkit/WindowsCommunityToolkit/pull/772.
6. qmatteoq/DesktopBridgeHelpers commit e278153 (https://github.com/qmatteoq/DesktopBridgeHelpers), contributed by Matteo Pagani to identify if running with identity in DesktopNotificationManagerCompat.cs and DesktopBridgeHelpers.cs, relicensed to this .NET Foundation project under the MIT license upon contribution in https://github.com/CommunityToolkit/WindowsCommunityToolkit/pull/3457.
%% PedroLamas/DeferredEvents NOTICES AND INFORMATION BEGIN HERE
=========================================

Просмотреть файл

@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.Toolkit.Mvvm.Messaging;
using UITests.App.Pages;
@ -49,6 +50,8 @@ namespace UITests.App
return;
}
Log.Comment("Received Command: {0}", cmd);
switch (cmd)
{
case "OpenPage":
@ -65,6 +68,44 @@ namespace UITests.App
await args.Request.SendResponseAsync(pageResponse ? OkResult : BadResult);
break;
case "Custom":
if (!TryGetValueAndLog(message, "Id", out var id) || !_customCommands.ContainsKey(id))
{
await args.Request.SendResponseAsync(BadResult);
break;
}
Log.Comment("Received request for custom command: {0}", id);
try
{
ValueSet response = await _customCommands[id].Invoke(message);
if (response != null)
{
response.Add("Status", "OK");
}
else
{
await args.Request.SendResponseAsync(BadResult);
break;
}
await args.Request.SendResponseAsync(response);
}
catch (Exception e)
{
ValueSet errmsg = new() { { "Status", "BAD" }, { "Exception", e.Message }, { "StackTrace", e.StackTrace } };
if (e.InnerException != null)
{
errmsg.Add("InnerException", e.InnerException.Message);
errmsg.Add("InnerExceptionStackTrace", e.InnerException.StackTrace);
}
await args.Request.SendResponseAsync(errmsg);
}
break;
default:
break;
@ -77,11 +118,15 @@ namespace UITests.App
private void OnAppServicesCanceled(IBackgroundTaskInstance sender, BackgroundTaskCancellationReason reason)
{
Log.Error("Background Task Instance Canceled. Reason: {0}", reason.ToString());
_appServiceDeferral.Complete();
}
private void AppServiceConnection_ServiceClosed(AppServiceConnection sender, AppServiceClosedEventArgs args)
{
Log.Error("AppServiceConnection Service Closed. AppServicesClosedStatus: {0}", args.Status.ToString());
_appServiceDeferral.Complete();
}
@ -118,5 +163,12 @@ namespace UITests.App
return true;
}
private Dictionary<string, Func<ValueSet, Task<ValueSet>>> _customCommands = new();
internal void RegisterCustomCommand(string id, Func<ValueSet, Task<ValueSet>> customCommandFunction)
{
_customCommands.Add(id, customCommandFunction);
}
}
}
}

Просмотреть файл

@ -6,9 +6,11 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using UITests.App.Commands;
using UITests.App.Pages;
using Windows.ApplicationModel;
using Windows.ApplicationModel.Activation;
using Windows.System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;

Просмотреть файл

@ -0,0 +1,105 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Linq;
using System.Reflection;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
using Microsoft.Toolkit;
using Microsoft.Toolkit.Uwp;
using Microsoft.Toolkit.Uwp.UI;
using UITests.App.Pages;
using Windows.Foundation.Collections;
using Windows.System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace UITests.App.Commands
{
public static class VisualTreeHelperCommands
{
private static DispatcherQueue Queue { get; set; }
private static JsonSerializerOptions SerializerOptions { get; } = new JsonSerializerOptions(JsonSerializerDefaults.General)
{
NumberHandling = JsonNumberHandling.AllowNamedFloatingPointLiterals,
};
public static void Initialize(DispatcherQueue uiThread)
{
Queue = uiThread;
(App.Current as App).RegisterCustomCommand("VisualTreeHelper.FindElementProperty", FindElementProperty);
}
public static async Task<ValueSet> FindElementProperty(ValueSet arguments)
{
ValueSet results = new ValueSet();
if (Queue == null)
{
Log.Error("VisualTreeHelper - Missing UI DispatcherQueue");
return null;
}
await Queue.EnqueueAsync(() =>
{
// Dispatch?
var content = Window.Current.Content as Frame;
if (content == null)
{
Log.Error("VisualTreeHelper.FindElementProperty - Window has no content.");
return;
}
if (arguments.TryGetValue("ElementName", out object value) && value is string name &&
arguments.TryGetValue("Property", out object value2) && value2 is string propertyName)
{
Log.Comment("VisualTreeHelper.FindElementProperty('{0}', '{1}')", name, propertyName);
// 1. Find Element in Visual Tree
var element = content.FindDescendant(name);
try
{
Log.Comment("VisualTreeHelper.FindElementProperty - Found Element? {0}", element != null);
var typeinfo = element.GetType().GetTypeInfo();
Log.Comment("Element Type: {0}", typeinfo.FullName);
var prop = element.GetType().GetTypeInfo().GetProperty(propertyName);
if (prop == null)
{
Log.Error("VisualTreeHelper.FindElementProperty - Couldn't find Property named {0} on type {1}", propertyName, typeinfo.FullName);
return;
}
// 2. Get the property using reflection
var propValue = prop.GetValue(element);
// 3. Serialize and return the result
results.Add("Result", JsonSerializer.Serialize(propValue, SerializerOptions));
}
catch (Exception e)
{
Log.Error("Error {0}", e.Message);
Log.Error("StackTrace:\n{0}", e.StackTrace);
}
}
});
if (results.Count > 0)
{
return results;
}
return null; // Failure
}
}
}

Просмотреть файл

@ -1,4 +1,4 @@
<Page x:Class="UITests.App.HomePage"
<Page x:Class="UITests.App.HomePage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

Просмотреть файл

@ -7,6 +7,7 @@ using System.Reflection;
using System.Threading.Tasks;
using Microsoft.Toolkit.Mvvm.Messaging;
using Microsoft.Toolkit.Uwp;
using UITests.App.Commands;
using UITests.App.Pages;
using Windows.System;
using Windows.UI.Xaml;
@ -33,6 +34,9 @@ namespace UITests.App
WeakReferenceMessenger.Default.Register<RequestPageMessage>(this);
_queue = DispatcherQueue.GetForCurrentThread();
// Initialize Custom Commands for AppService
VisualTreeHelperCommands.Initialize(_queue);
}
public void Receive(RequestPageMessage message)

Просмотреть файл

@ -2,7 +2,8 @@
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
IgnorableNamespaces="uap mp">
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap mp rescap">
<Identity
Name="3568ebdf-5b6b-4ddd-bb17-462d614ba50f"
@ -48,5 +49,7 @@
<Capabilities>
<Capability Name="internetClient" />
<!-- Our AppService Background Connection will Timeout after a period of time otherwise. -->
<rescap:Capability Name="extendedBackgroundTaskTime"/>
</Capabilities>
</Package>

Просмотреть файл

@ -21,6 +21,8 @@
the application package. The asterisks are not wildcards.
-->
<Assembly Name="*Application*" Dynamic="Required All" />
<Namespace Name="Windows.UI.Xaml.Controls" Dynamic="Required All" />
<Namespace Name="Microsoft.UI.Xaml.Controls" Dynamic="Required All" />
<!-- Add your application specific runtime directives here. -->
</Application>
</Directives>

Просмотреть файл

@ -2,7 +2,7 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Diagnostics;
using Windows.UI.Xaml;
namespace UITests.App.Pages
@ -37,9 +37,13 @@ namespace UITests.App.Pages
format = format.Replace("{", "{{").Replace("}", "}}");
}
var message = string.Format(format, args);
Debug.WriteLine(message);
// Send back to Test Harness via AppService
// TODO: Make this a cleaner connection/pattern
((App)Application.Current).SendLogMessage(level, string.Format(format, args));
_ = ((App)Application.Current).SendLogMessage(level, message);
}
}
}

Просмотреть файл

@ -26,14 +26,13 @@
<AppxPackageSigningTimestampDigestAlgorithm>SHA256</AppxPackageSigningTimestampDigestAlgorithm>
<GenerateAppxPackageOnBuild>true</GenerateAppxPackageOnBuild>
<AppxPackageSigningEnabled>True</AppxPackageSigningEnabled>
<NoWarn>$(NoWarn);2008</NoWarn>
<IsTestHost>true</IsTestHost>
<LangVersion>9.0</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -44,7 +43,6 @@
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -56,7 +54,6 @@
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -67,7 +64,6 @@
<OutputPath>bin\ARM\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -79,7 +75,6 @@
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -91,7 +86,6 @@
<OutputPath>bin\ARM64\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>ARM64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -103,7 +97,6 @@
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -114,7 +107,6 @@
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
@ -132,6 +124,7 @@
<Compile Include="App.AppService.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
</Compile>
<Compile Include="Commands\VisualTreeHelperCommands.cs" />
<Compile Include="HomePage.xaml.cs">
<DependentUpon>HomePage.xaml</DependentUpon>
</Compile>
@ -178,6 +171,9 @@
<PackageReference Include="MUXAppTestHelpers">
<Version>0.0.4</Version>
</PackageReference>
<PackageReference Include="System.Text.Json">
<Version>5.0.2</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
<None Include="UITests.App.pfx" />

Просмотреть файл

@ -1,36 +1,33 @@
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFrameworkIdentifier>.NETCoreApp</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v3.1</TargetFrameworkVersion>
<RuntimeIdentifier>win10-x86</RuntimeIdentifier>
<LangVersion>9.0</LangVersion>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<PlatformTarget>x86</PlatformTarget>
<OutputType>Exe</OutputType>
<IsPackable>false</IsPackable>
<RuntimeIdentifier>win10-x86</RuntimeIdentifier>
<TargetFrameworks>netcoreapp3.1</TargetFrameworks>
</PropertyGroup>
<PropertyGroup>
<IsTestHarness>true</IsTestHarness>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
</PropertyGroup>
<ItemGroup>
<PackageReference Condition="'$(TargetFramework)' == 'netcoreapp3.1'"
Include="Microsoft.Windows.SDK.Contracts"
Version="10.0.19041.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
<PackageReference Include="MUXTestInfra.MSTest" Version="0.0.4" />
<!-- MSTest -->
<PackageReference Include="MSTest.TestAdapter" Version="2.1.2" />
<PackageReference Include="MSTest.TestFramework" Version="2.1.2" />
<PackageReference Include="System.Diagnostics.Process" Version="4.3.0" />
<PackageReference Include="System.Drawing.Primitives" Version="4.3.0" />
<PackageReference Include="System.Reflection.TypeExtensions" Version="4.5.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
<!-- Microsoft.UI.Xaml MSTest Extension -->
<PackageReference Include="MUXTestInfra.MSTest" Version="0.0.4" />
<!-- System packages -->
<PackageReference Include="System.Text.Json" Version="5.0.2" />
<PackageReference Include="System.Drawing.Primitives" Version="4.3.0" />
<PackageReference Include="System.Diagnostics.Process" Version="4.3.0" />
<PackageReference Include="System.Reflection.TypeExtensions" Version="4.5.1" />
<!-- Windows SDK packages -->
<PackageReference Include="Microsoft.Windows.Apps.Test" Version="1.0.181205002" />
<PackageReference Include="Microsoft.Windows.SDK.Contracts" Version="10.0.19041.1" />
</ItemGroup>
<Import Project="..\UITests.Tests.Shared\UITests.Tests.Shared.projitems" Label="Shared" />
</Project>

Просмотреть файл

@ -0,0 +1,225 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using Microsoft.Windows.Apps.Test.Foundation;
using Microsoft.Windows.Apps.Test.Foundation.Controls;
using Windows.UI.Xaml.Tests.MUXControls.InteractionTests.Common;
using Windows.UI.Xaml.Tests.MUXControls.InteractionTests.Infra;
using System.Linq;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Dynamic;
using System;
#if USING_TAEF
using WEX.Logging.Interop;
using WEX.TestExecution;
using WEX.TestExecution.Markup;
#else
using Microsoft.VisualStudio.TestTools.UnitTesting;
#endif
namespace UITests.Tests
{
[TestClass]
public class GridSplitterTest : UITestBase
{
[ClassInitialize]
[TestProperty("RunAs", "User")]
[TestProperty("Classification", "ScenarioTestSuite")]
[TestProperty("Platform", "Any")]
public static void ClassInitialize(TestContext testContext)
{
TestEnvironment.Initialize(testContext, WinUICsUWPSampleApp);
}
[TestMethod]
[TestPage("GridSplitterTestPage")]
public async Task TestGridSplitterDragHorizontalAsync()
{
var amount = 50;
var tolerance = 10;
var grid = FindElement.ByName("GridSplitterRoot");
var gridSplitter = FindElement.ById("GridSplitterHorizontal");
var box = FindElement.ByName("TopLeftBox");
Verify.IsNotNull(grid, "Can't find GridSplitterRoot");
Verify.IsNotNull(gridSplitter, "Can't find Horizontal GridSplitter");
Verify.IsNotNull(box, "Can't find box");
var width = box.BoundingRectangle.Width;
ColumnDefinition columnDefinitionStart = (await VisualTreeHelper.FindElementPropertyAsync<List<ColumnDefinition>>("GridSplitterRoot", "ColumnDefinitions"))?.FirstOrDefault();
Verify.IsNotNull(columnDefinitionStart, "Couldn't retrieve Column Definition");
// Drag to the Left
InputHelper.DragDistance(gridSplitter, amount, Direction.West, 1000);
Wait.ForMilliseconds(1050);
Wait.ForIdle();
ColumnDefinition columnDefinitionEnd = (await VisualTreeHelper.FindElementPropertyAsync<List<ColumnDefinition>>("GridSplitterRoot", "ColumnDefinitions"))?.FirstOrDefault();
Wait.ForIdle();
Verify.IsTrue(Math.Abs(columnDefinitionStart.ActualWidth - amount - columnDefinitionEnd.ActualWidth) <= tolerance, $"ColumnDefinition not in range expected {columnDefinitionStart.ActualWidth - amount} was {columnDefinitionEnd.ActualWidth}");
Verify.IsTrue(Math.Abs(width - amount - box.BoundingRectangle.Width) <= tolerance, $"Bounding box not in range expected {width - amount} was {box.BoundingRectangle.Width}.");
}
[TestMethod]
[TestPage("GridSplitterTestPage")]
public async Task TestGridSplitterDragHorizontalPastMinimumAsync()
{
var amount = 150;
var gridSplitter = FindElement.ById("GridSplitterHorizontal");
Verify.IsNotNull(gridSplitter, "Can't find Horizontal GridSplitter");
// Drag to the Left
InputHelper.DragDistance(gridSplitter, amount, Direction.West, 1000);
Wait.ForMilliseconds(1050);
Wait.ForIdle();
ColumnDefinition columnDefinitionEnd = (await VisualTreeHelper.FindElementPropertyAsync<List<ColumnDefinition>>("GridSplitterRoot", "ColumnDefinitions"))?.FirstOrDefault();
Wait.ForIdle();
Verify.AreEqual(columnDefinitionEnd.MinWidth, columnDefinitionEnd.ActualWidth, "Column was not the minimum size expected.");
}
[TestMethod]
[TestPage("GridSplitterTestPage")]
public async Task TestGridSplitterDragHorizontalPastMaximumAsync()
{
var amount = 150;
var gridSplitter = FindElement.ById("GridSplitterHorizontal");
Verify.IsNotNull(gridSplitter, "Can't find Horizontal GridSplitter");
// Drag to the Left
InputHelper.DragDistance(gridSplitter, amount, Direction.East, 1000);
Wait.ForMilliseconds(1050);
Wait.ForIdle();
ColumnDefinition columnDefinitionEnd = (await VisualTreeHelper.FindElementPropertyAsync<List<ColumnDefinition>>("GridSplitterRoot", "ColumnDefinitions"))?.FirstOrDefault();
Wait.ForIdle();
Verify.AreEqual(columnDefinitionEnd.MaxWidth, columnDefinitionEnd.ActualWidth, "Column was not the maximum size expected.");
}
[TestMethod]
[TestPage("GridSplitterTestPage")]
public async Task TestGridSplitterDragVerticalAsync()
{
var amount = 50;
var tolerance = 10;
var grid = FindElement.ByName("GridSplitterRoot");
var gridSplitter = FindElement.ById("GridSplitterVertical");
Verify.IsNotNull(grid, "Can't find GridSplitterRoot");
Verify.IsNotNull(gridSplitter, "Can't find Vertical GridSplitter");
RowDefinition rowDefinitionStart = (await VisualTreeHelper.FindElementPropertyAsync<List<RowDefinition>>("GridSplitterRoot", "RowDefinitions"))?.FirstOrDefault();
Verify.IsNotNull(rowDefinitionStart, "Couldn't retrieve Row Definition");
// Drag to the Left
InputHelper.DragDistance(gridSplitter, amount, Direction.North, 1000);
Wait.ForMilliseconds(1050);
Wait.ForIdle();
RowDefinition rowDefinitionEnd = (await VisualTreeHelper.FindElementPropertyAsync<List<RowDefinition>>("GridSplitterRoot", "RowDefinitions"))?.FirstOrDefault();
Wait.ForIdle();
Verify.IsTrue(Math.Abs(rowDefinitionStart.ActualHeight - amount - rowDefinitionEnd.ActualHeight) <= tolerance, $"RowDefinition not in range expected {rowDefinitionStart.ActualHeight - amount} was {rowDefinitionEnd.ActualHeight}");
}
[TestMethod]
[TestPage("GridSplitterTestPage")]
public async Task TestGridSplitterDragVerticalPastMinimumAsync()
{
var amount = 150;
var gridSplitter = FindElement.ById("GridSplitterVertical");
Verify.IsNotNull(gridSplitter, "Can't find Vertical GridSplitter");
// Drag to the Left
InputHelper.DragDistance(gridSplitter, amount, Direction.North, 1000);
Wait.ForMilliseconds(1050);
Wait.ForIdle();
RowDefinition rowDefinitionEnd = (await VisualTreeHelper.FindElementPropertyAsync<List<RowDefinition>>("GridSplitterRoot", "RowDefinitions"))?.FirstOrDefault();
Wait.ForIdle();
Verify.AreEqual(rowDefinitionEnd.MinHeight, rowDefinitionEnd.ActualHeight, "Row was not the minimum size expected.");
}
[TestMethod]
[TestPage("GridSplitterTestPage")]
public async Task TestGridSplitterDragVerticalPastMaximumAsync()
{
var amount = 150;
var gridSplitter = FindElement.ById("GridSplitterVertical");
Verify.IsNotNull(gridSplitter, "Can't find Vertical GridSplitter");
// Drag to the Left
InputHelper.DragDistance(gridSplitter, amount, Direction.South, 1000);
Wait.ForMilliseconds(1050);
Wait.ForIdle();
RowDefinition rowDefinitionEnd = (await VisualTreeHelper.FindElementPropertyAsync<List<RowDefinition>>("GridSplitterRoot", "RowDefinitions"))?.FirstOrDefault();
Wait.ForIdle();
Verify.AreEqual(rowDefinitionEnd.MaxHeight, rowDefinitionEnd.ActualHeight, "Row was not the maximum size expected.");
}
private class ColumnDefinition
{
public GridLength Width { get; set; }
public double ActualWidth { get; set; }
public double MinWidth { get; set; }
public double MaxWidth { get; set; }
}
private class RowDefinition
{
public GridLength Height { get; set; }
public double ActualHeight { get; set; }
public double MinHeight { get; set; }
public double MaxHeight { get; set; }
}
private class GridLength
{
public int GridUnitType { get; set; } // 0 Auto, 1 Pixel, 2 Star
public double Value { get; set; }
}
}
}

Просмотреть файл

@ -0,0 +1,94 @@
<Page x:Class="UITests.App.Pages.GridSplitterTestPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sys="using:System"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">
<Page.Resources>
<Style TargetType="Border">
<Setter Property="BorderThickness" Value="1,1,0,0" />
<Setter Property="Padding" Value="16" />
<Setter Property="BorderBrush" Value="{ThemeResource SystemControlHighlightChromeHighBrush}" />
</Style>
<Style TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap" />
</Style>
</Page.Resources>
<!-- Grid isn't normally an element that's findable so we need to use AutomationProperties.Name -->
<Grid x:Name="GridSplitterRoot"
Height="500"
Margin="48"
VerticalAlignment="Top"
AutomationProperties.Name="GridSplitterRoot"
BorderBrush="{ThemeResource SystemControlHighlightChromeHighBrush}"
BorderThickness="0,0,1,1">
<Grid.RowDefinitions>
<RowDefinition Height="200"
MinHeight="100"
MaxHeight="300" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"
MinWidth="100"
MaxWidth="300" />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border Grid.Row="0"
Grid.Column="0"
AutomationProperties.Name="TopLeftBox">
<TextBlock Text="This text to simulate the resizing feature of the Grid Splitter Control, try to move the splitter to see the effect RowDefinition MinHeight='100'" />
</Border>
<Border Grid.Row="0"
Grid.Column="1">
<TextBlock Text="This text to simulate the resizing feature of the Grid Splitter Control, try to move the splitter to see the effect" />
</Border>
<Border Grid.Row="0"
Grid.Column="2">
<TextBlock Text="This text to simulate the resizing feature of the Grid Splitter Control, try to move the splitter to see the effect" />
</Border>
<Border Grid.Row="1"
Grid.Column="0">
<TextBlock Text="This text to simulate the resizing feature of the Grid Splitter Control, try to move the splitter to see the effect" />
</Border>
<Border Grid.Row="1"
Grid.Column="1">
<TextBlock Text="This text to simulate the resizing feature of the Grid Splitter Control, try to move the splitter to see the effect" />
</Border>
<Border Grid.Row="1"
Grid.Column="2">
<TextBlock Text="This text to simulate the resizing feature of the Grid Splitter Control, try to move the splitter to see the effect" />
</Border>
<!-- Column Grid Splitter -->
<controls:GridSplitter x:Name="GridSplitterHorizontal"
Grid.Column="1"
Width="16"
HorizontalAlignment="Left"/>
<!-- Row Grid Splitter -->
<controls:GridSplitter x:Name="GridSplitterVertical"
Grid.Row="1"
Grid.ColumnSpan="3"
Height="16"
VerticalAlignment="Top">
<controls:GridSplitter.Element>
<TextBlock HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="Segoe MDL2 Assets"
Foreground="White"
IsHitTestVisible="False"
Text="&#xE76F;" />
</controls:GridSplitter.Element>
</controls:GridSplitter>
</Grid>
</Page>

Просмотреть файл

@ -0,0 +1,20 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace UITests.App.Pages
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class GridSplitterTestPage : Page
{
public GridSplitterTestPage()
{
this.InitializeComponent();
}
}
}

Просмотреть файл

@ -1,4 +1,4 @@
// Licensed to the .NET Foundation under one or more agreements.
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

Просмотреть файл

@ -1,4 +1,4 @@
<Page x:Class="UITests.App.Pages.RangeSelectorTestPage"
<Page x:Class="UITests.App.Pages.RangeSelectorTestPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"

Просмотреть файл

@ -1,4 +1,4 @@
// Licensed to the .NET Foundation under one or more agreements.
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

Просмотреть файл

@ -46,5 +46,31 @@ namespace UITests.Tests
Verify.AreEqual(newValue, textBox.GetText());
}
[TestMethod]
[TestPage("TextBoxMaskTestPage")]
public void TestTextBoxMaskBinding_TextChanging_RegressionCheck()
{
var initialValue = FindElement.ById<TextBlock>("InitialValueTextBlock").GetText();
var textBox = FindElement.ById<Edit>("TextBox");
Verify.AreEqual(initialValue, textBox.GetText());
var setEmptyButton = FindElement.ById<Button>("SetEmptyButton");
setEmptyButton.Click();
Wait.ForIdle();
// Previously, if the bound value of TextBox with a mask was set to an empty
// string. It would display the old values after text was entered by the user.
// PR #4048 should fix this issue.
textBox.SendKeys("0");
// The user entering "0" key at the start position of the TextBox would result
// in the following value prior to PR #4048.
const string incorrectValue = "02:50:59";
Verify.AreNotEqual(incorrectValue, textBox.GetText());
}
}
}

Просмотреть файл

@ -12,6 +12,8 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="10" />
<RowDefinition Height="Auto" />
<RowDefinition Height="10" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@ -43,5 +45,10 @@
Grid.Column="2"
HorizontalAlignment="Center"
Text="{x:Bind NewValue}" />
<Button x:Name="SetEmptyButton"
Grid.Row="4"
Grid.Column="0"
Click="SetEmptyButton_Click"
Content="Set Target Value Empty" />
</Grid>
</Page>

Просмотреть файл

@ -38,5 +38,11 @@ namespace UITests.App.Pages
Value = NEW_VALUE;
Log.Comment("Value Changed to {0}", Value);
}
private void SetEmptyButton_Click(object sender, RoutedEventArgs e)
{
Value = string.Empty;
Log.Comment("Value Changed to {0}", Value);
}
}
}

Просмотреть файл

@ -44,6 +44,7 @@ namespace UITests.Tests
CommunicationService = new AppServiceConnection();
CommunicationService.RequestReceived += CommunicationService_RequestReceived;
CommunicationService.ServiceClosed += CommunicationService_ServiceClosed;
// Here, we use the app service name defined in the app service
// provider's Package.appxmanifest file in the <Extension> section.
@ -63,6 +64,11 @@ namespace UITests.Tests
}
}
private static void CommunicationService_ServiceClosed(AppServiceConnection sender, AppServiceClosedEventArgs args)
{
Log.Warning("[Harness] Communication Service Closed! AppServiceClosedStatus: {0}", args.Status.ToString());
}
internal static Task<bool> OpenPage(string pageName)
{
Log.Comment("[Harness] Sending Host Page Request: {0}", pageName);
@ -74,6 +80,16 @@ namespace UITests.Tests
});
}
internal static async Task<AppServiceResponse> SendCustomMessageToApp(ValueSet message)
{
if (CommunicationService is null)
{
await InitalizeComService();
}
return await CommunicationService.SendMessageAsync(message);
}
private static async Task<bool> SendMessageToApp(ValueSet message)
{
if (CommunicationService is null)
@ -83,10 +99,20 @@ namespace UITests.Tests
var response = await CommunicationService.SendMessageAsync(message);
return CheckResponseStatusOK(response);
}
internal static bool CheckResponseStatusOK(AppServiceResponse response)
{
object message = null;
var hasMessage = response?.Message?.TryGetValue("Status", out message) is true;
Log.Comment("[Harness] Checking Response AppServiceResponseStatus({0}), Message Status: {1}", response.Status.ToString(), message?.ToString());
return response.Status == AppServiceResponseStatus.Success
&& response.Message.TryGetValue("Status", out var s)
&& s is string status
&& status == "OK";
&& hasMessage
&& message is string status
&& status == "OK";
}
private static void CommunicationService_RequestReceived(AppServiceConnection sender, AppServiceRequestReceivedEventArgs args)

Просмотреть файл

@ -7,38 +7,51 @@
<PropertyGroup Label="Configuration">
<Import_RootNamespace>UITests.Tests.Shared</Import_RootNamespace>
</PropertyGroup>
<Choose>
<!-- When we're in the test harness include all '*Test.cs' files -->
<When Condition="'$(IsTestHarness)' == 'true'">
<ItemGroup>
<Compile Include="$(MSBuildThisFileDirectory)**\*Test.cs" Exclude="**\bin\**\*Test.cs;**\obj\**\*Test.cs"/>
<Compile Include="$(MSBuildThisFileDirectory)**\*Test.cs" />
<!-- Base test helpers -->
<Compile Include="$(MSBuildThisFileDirectory)UITestBase.cs" />
<Compile Include="$(MSBuildThisFileDirectory)TestAssembly.cs" />
<Compile Include="$(MSBuildThisFileDirectory)TestPageAttribute.cs" />
<Compile Include="$(MSBuildThisFileDirectory)VisualTreeHelper.cs" />
</ItemGroup>
</When>
<!-- Have a None Include as well to make all items visible under this Shared Project in VS IDE -->
<Otherwise>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)**\*Test.cs" />
<!-- Base test helpers -->
<None Include="$(MSBuildThisFileDirectory)UITestBase.cs" />
<None Include="$(MSBuildThisFileDirectory)TestAssembly.cs" />
<None Include="$(MSBuildThisFileDirectory)TestPageAttribute.cs" />
<None Include="$(MSBuildThisFileDirectory)VisualTreeHelper.cs" />
</ItemGroup>
</Otherwise>
</Choose>
<Choose>
<!-- When we're in the UI app used by the test harness, include all the pages -->
<When Condition="'$(IsTestHost)' == 'true'">
<ItemGroup>
<Page Include="$(MSBuildThisFileDirectory)**\*Page.xaml" Exclude="**\bin\**\*Page.xaml;**\obj\**\*Page.xaml" Link="%(RecursiveDir)%(FileName)%(Extension)" SubType="Designer" Generator="MSBuild:Compile" />
<Compile Include="$(MSBuildThisFileDirectory)**\*Page.xaml.cs" DependentUpon="%(Filename)" />
<Page Include="$(MSBuildThisFileDirectory)**\*Page.xaml" SubType="Designer" Generator="MSBuild:Compile">
<!--
HACK: See Microsoft.Windows.UI.Xaml.Common.targets(540) for how XAML targets calculate 'xbf' output paths.
Without this 'Link' attribute, XAML targets use absolute path instead of relative path for 'xbf' compilation.
Thus, the build errors out with 'MSB4023' code without the 'Link' attribute below.
-->
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
</Page>
<Compile Include="$(MSBuildThisFileDirectory)**\*Page.xaml.cs" SubType="Code" DependentUpon="%(Filename)" />
</ItemGroup>
</When>
<!-- Have a None Include as well to make all items visible under this Shared Project in VS IDE -->
<Otherwise>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)**\*Page.xaml" SubType="Designer" Generator="MSBuild:Compile" />
<None Include="$(MSBuildThisFileDirectory)**\*Page.xaml.cs" SubType="Code" DependentUpon="%(Filename)" />
</ItemGroup>
</Otherwise>
</Choose>
<!-- Have a None Include as well to make all items visible in VS in the Shared Project -->
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)**\*Test.cs" Exclude="**\bin\**\*Test.cs;**\obj\**\*Test.cs"/>
<None Include="$(MSBuildThisFileDirectory)**\*Page.xaml" Exclude="**\bin\**\*Page.xaml;**\obj\**\*Page.xaml" SubType="Designer" Generator="MSBuild:Compile" />
<None Include="$(MSBuildThisFileDirectory)**\*Page.xaml.cs" DependentUpon="%(Filename)" />
<!-- Base test helpers -->
<None Include="$(MSBuildThisFileDirectory)UITestBase.cs" />
<None Include="$(MSBuildThisFileDirectory)TestAssembly.cs" />
<None Include="$(MSBuildThisFileDirectory)TestPageAttribute.cs" />
</ItemGroup>
</Project>

Просмотреть файл

@ -4,9 +4,9 @@
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" />
<PropertyGroup />
<Import Project="UITests.Tests.Shared.projitems" Label="Shared" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
</Project>

Просмотреть файл

@ -0,0 +1,67 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
#if USING_TAEF
using WEX.Logging.Interop;
#endif
namespace UITests.Tests
{
/// <summary>
/// Helper class to access some VisualTree info through our communication pipeline to the host app
/// using TestAssembly.SendMessageToApp.
/// </summary>
internal static class VisualTreeHelper
{
private static JsonSerializerOptions SerializerOptions { get; } = new JsonSerializerOptions(JsonSerializerDefaults.General)
{
NumberHandling = JsonNumberHandling.AllowNamedFloatingPointLiterals,
};
/// <summary>
/// Looks for the specified element by name and retrieves the specified property path.
/// </summary>
/// <param name="name">Name of element to search for.</param>
/// <param name="property">Name of property to retrieve from element.</param>
/// <typeparam name="T">Type of data to serialize result back as.</typeparam>
/// <returns>Retrieved value or default.</returns>
public static async Task<T> FindElementPropertyAsync<T>(string name, string property)
{
var response = await TestAssembly.SendCustomMessageToApp(new()
{
{ "Command", "Custom" },
{ "Id", "VisualTreeHelper.FindElementProperty" },
{ "ElementName", name },
{ "Property", property },
});
if (!TestAssembly.CheckResponseStatusOK(response))
{
Log.Error("[Harness] VisualTreeHelper: Error trying to retrieve property {0} from element named {1}.", property, name);
return default(T);
}
if (response.Message.TryGetValue("Result", out object value) && value is string str)
{
Log.Comment("[Harness] VisualTreeHelper.FindElementPropertyAsync - Received: {0}", str);
try
{
return JsonSerializer.Deserialize<T>(str, SerializerOptions);
}
catch
{
Log.Error("[Harness] VisualTreeHelper.FindElementPropertyAsync - Couldn't deserialize result as {0}", typeof(T));
}
}
return default(T);
}
}
}

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше