├── UwpdtdSamples
├── Assets
│ ├── StoreLogo.png
│ ├── LockScreenLogo.scale-200.png
│ ├── SplashScreen.scale-200.png
│ ├── Square44x44Logo.scale-200.png
│ ├── Wide310x150Logo.scale-200.png
│ ├── Square150x150Logo.scale-200.png
│ └── Square44x44Logo.targetsize-24_altform-unplated.png
├── App.xaml
├── MainPage.xaml
├── MainPage.xaml.cs
├── Properties
│ ├── AssemblyInfo.cs
│ └── Default.rd.xml
├── Package.appxmanifest
├── App.xaml.cs
└── UwpdtdSamples.csproj
├── WpfdtdSamples
├── Resources
│ └── Design-time
│ │ └── HEADER-Surface-Spring-2020.jpg
├── App.xaml
├── App.xaml.cs
├── WpfdtdSamples.csproj
├── Models
│ └── Employee.cs
├── AssemblyInfo.cs
├── MainWindow.xaml.cs
├── Controls
│ ├── ExampleUserControl.xaml.cs
│ └── ExampleUserControl.xaml
├── Helpers
│ └── ListViewdtSelector.cs
└── MainWindow.xaml
├── README.md
├── .gitattributes
├── XAMLDesignTimeSamples.sln
└── .gitignore
/UwpdtdSamples/Assets/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LyalinDotCom/XAMLDesignTimeSamples/HEAD/UwpdtdSamples/Assets/StoreLogo.png
--------------------------------------------------------------------------------
/UwpdtdSamples/Assets/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LyalinDotCom/XAMLDesignTimeSamples/HEAD/UwpdtdSamples/Assets/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/UwpdtdSamples/Assets/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LyalinDotCom/XAMLDesignTimeSamples/HEAD/UwpdtdSamples/Assets/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/UwpdtdSamples/Assets/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LyalinDotCom/XAMLDesignTimeSamples/HEAD/UwpdtdSamples/Assets/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/UwpdtdSamples/Assets/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LyalinDotCom/XAMLDesignTimeSamples/HEAD/UwpdtdSamples/Assets/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/UwpdtdSamples/Assets/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LyalinDotCom/XAMLDesignTimeSamples/HEAD/UwpdtdSamples/Assets/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/WpfdtdSamples/Resources/Design-time/HEADER-Surface-Spring-2020.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LyalinDotCom/XAMLDesignTimeSamples/HEAD/WpfdtdSamples/Resources/Design-time/HEADER-Surface-Spring-2020.jpg
--------------------------------------------------------------------------------
/UwpdtdSamples/Assets/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LyalinDotCom/XAMLDesignTimeSamples/HEAD/UwpdtdSamples/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/UwpdtdSamples/App.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/WpfdtdSamples/App.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/WpfdtdSamples/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Data;
5 | using System.Linq;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 |
9 | namespace WpfdtdSamples
10 | {
11 | ///
12 | /// Interaction logic for App.xaml
13 | ///
14 | public partial class App : Application
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/UwpdtdSamples/MainPage.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/WpfdtdSamples/WpfdtdSamples.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | WinExe
5 | net5.0-windows
6 | true
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | PreserveNewest
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/WpfdtdSamples/Models/Employee.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace WpfdtdSamples.Models
8 | {
9 | public enum OrderStatus { None, New, Processing, Shipped, Received };
10 |
11 | public class Employee
12 | {
13 | public string FirstName { get; set; }
14 | public string LastName { get; set; }
15 | public string Email { get; set; }
16 | public int IsMember { get; set; }
17 | public OrderStatus Status { get; set; }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/WpfdtdSamples/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | [assembly: ThemeInfo(
4 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
5 | //(used if a resource is not found in the page,
6 | // or application resource dictionaries)
7 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
8 | //(used if a resource is not found in the page,
9 | // app, or any theme specific resource dictionaries)
10 | )]
11 |
--------------------------------------------------------------------------------
/WpfdtdSamples/MainWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace WpfdtdSamples
17 | {
18 | ///
19 | /// Interaction logic for MainWindow.xaml
20 | ///
21 | public partial class MainWindow : Window
22 | {
23 | public MainWindow()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/WpfdtdSamples/Controls/ExampleUserControl.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace WpfdtdSamples.Controls
17 | {
18 | ///
19 | /// Interaction logic for ExampleUserControl.xaml
20 | ///
21 | public partial class ExampleUserControl : UserControl
22 | {
23 | public ExampleUserControl()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/WpfdtdSamples/Controls/ExampleUserControl.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/UwpdtdSamples/MainPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.Foundation;
7 | using Windows.Foundation.Collections;
8 | using Windows.UI.Xaml;
9 | using Windows.UI.Xaml.Controls;
10 | using Windows.UI.Xaml.Controls.Primitives;
11 | using Windows.UI.Xaml.Data;
12 | using Windows.UI.Xaml.Input;
13 | using Windows.UI.Xaml.Media;
14 | using Windows.UI.Xaml.Navigation;
15 |
16 | // The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
17 |
18 | namespace UwpdtdSamples
19 | {
20 | ///
21 | /// An empty page that can be used on its own or navigated to within a Frame.
22 | ///
23 | public sealed partial class MainPage : Page
24 | {
25 | public MainPage()
26 | {
27 | this.InitializeComponent();
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/UwpdtdSamples/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("UwpdtdSamples")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("UwpdtdSamples")]
13 | [assembly: AssemblyCopyright("Copyright © 2020")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Version information for an assembly consists of the following four values:
18 | //
19 | // Major Version
20 | // Minor Version
21 | // Build Number
22 | // Revision
23 | //
24 | // You can specify all the values or you can default the Build and Revision Numbers
25 | // by using the '*' as shown below:
26 | // [assembly: AssemblyVersion("1.0.*")]
27 | [assembly: AssemblyVersion("1.0.0.0")]
28 | [assembly: AssemblyFileVersion("1.0.0.0")]
29 | [assembly: ComVisible(false)]
--------------------------------------------------------------------------------
/WpfdtdSamples/Helpers/ListViewdtSelector.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 |
9 | namespace WpfdtdSamples.Helpers
10 | {
11 | public class ListViewdtSelector : DataTemplateSelector
12 | {
13 | public override DataTemplate SelectTemplate(object item, DependencyObject container)
14 | {
15 | FrameworkElement elemnt = container as FrameworkElement;
16 |
17 | var value = item as string;
18 | if (value == "Donovan")
19 | {
20 | return elemnt.FindResource("ListViewBoldDataTemplate") as DataTemplate;
21 | } else
22 | {
23 | return elemnt.FindResource("ListViewDefaultDataTemplate") as DataTemplate;
24 | }
25 |
26 | //FrameworkElement elemnt = container as FrameworkElement;
27 | //User user = item as User;
28 | //if (user.IsPremiumUser)
29 | //{
30 | // return elemnt.FindResource("PremiumUserDataTemplate") as DataTemplate;
31 | //}
32 | //else
33 | //{
34 | // return elemnt.FindResource("NormalUserDataTemplate") as DataTemplate;
35 | //}
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/UwpdtdSamples/Properties/Default.rd.xml:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/UwpdtdSamples/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
13 |
14 |
15 |
16 |
17 | UwpdtdSamples
18 | DmitryLyalin
19 | Assets\StoreLogo.png
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
34 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # XAMLDesignTimeSamples
2 |
3 | Demo app the showcase the capabilites of design-time data for .NET desktop applcations powered by XAML (WPF .NET Core & UWP).
4 |
5 | **Getting Started:**
6 |
7 | * This feature was first introduced in Visual Studio 2019 16.7 Preview 3. While in preview you might have to turn the feature on in settings even if you have the preview installed ( “Options > Environment > Preview Features” and enable “Expanded Design-time Data Support”)
8 |
9 | **Known Issues**
10 |
11 | * **UserControls hosted in parent page don't render d:**: UserControls can be created and visualized using design-time data, but when hosted in a parent page the design-time data using d: won't be a consistent experience and likely not show up. We're working to improve this experience in 16.8 timeframe.
12 |
13 | **Limitations**
14 |
15 | **UWP apps don't support :**
16 | While WPF samples often use inside a lists/grids/etc ItemSource to produce design-time data, this isn't supported for UWP apps. Alternative is to add design-time items under Items collection.
17 | Example:
18 |
19 | ```
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | ```
28 |
29 | Credit: thank you to Cosmin Stirbu for bringing up this issue using a [VS Community feedback ticket](https://developercommunity.visualstudio.com/content/problem/1096702/uwp-listview-not-rendered-in-xaml-designer-in-vs-1.html).
30 |
31 | **Resources:**
32 | * You can see a demo of this feature from our [June 2019 .NET Desktop Community Standup (starting at 29 minutes)](https://youtu.be/q7ODj3RJnME?t=1765)
33 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/UwpdtdSamples/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.ApplicationModel;
7 | using Windows.ApplicationModel.Activation;
8 | using Windows.Foundation;
9 | using Windows.Foundation.Collections;
10 | using Windows.UI.Xaml;
11 | using Windows.UI.Xaml.Controls;
12 | using Windows.UI.Xaml.Controls.Primitives;
13 | using Windows.UI.Xaml.Data;
14 | using Windows.UI.Xaml.Input;
15 | using Windows.UI.Xaml.Media;
16 | using Windows.UI.Xaml.Navigation;
17 |
18 | namespace UwpdtdSamples
19 | {
20 | ///
21 | /// Provides application-specific behavior to supplement the default Application class.
22 | ///
23 | sealed partial class App : Application
24 | {
25 | ///
26 | /// Initializes the singleton application object. This is the first line of authored code
27 | /// executed, and as such is the logical equivalent of main() or WinMain().
28 | ///
29 | public App()
30 | {
31 | this.InitializeComponent();
32 | this.Suspending += OnSuspending;
33 | }
34 |
35 | ///
36 | /// Invoked when the application is launched normally by the end user. Other entry points
37 | /// will be used such as when the application is launched to open a specific file.
38 | ///
39 | /// Details about the launch request and process.
40 | protected override void OnLaunched(LaunchActivatedEventArgs e)
41 | {
42 | Frame rootFrame = Window.Current.Content as Frame;
43 |
44 | // Do not repeat app initialization when the Window already has content,
45 | // just ensure that the window is active
46 | if (rootFrame == null)
47 | {
48 | // Create a Frame to act as the navigation context and navigate to the first page
49 | rootFrame = new Frame();
50 |
51 | rootFrame.NavigationFailed += OnNavigationFailed;
52 |
53 | if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
54 | {
55 | //TODO: Load state from previously suspended application
56 | }
57 |
58 | // Place the frame in the current Window
59 | Window.Current.Content = rootFrame;
60 | }
61 |
62 | if (e.PrelaunchActivated == false)
63 | {
64 | if (rootFrame.Content == null)
65 | {
66 | // When the navigation stack isn't restored navigate to the first page,
67 | // configuring the new page by passing required information as a navigation
68 | // parameter
69 | rootFrame.Navigate(typeof(MainPage), e.Arguments);
70 | }
71 | // Ensure the current window is active
72 | Window.Current.Activate();
73 | }
74 | }
75 |
76 | ///
77 | /// Invoked when Navigation to a certain page fails
78 | ///
79 | /// The Frame which failed navigation
80 | /// Details about the navigation failure
81 | void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
82 | {
83 | throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
84 | }
85 |
86 | ///
87 | /// Invoked when application execution is being suspended. Application state is saved
88 | /// without knowing whether the application will be terminated or resumed with the contents
89 | /// of memory still intact.
90 | ///
91 | /// The source of the suspend request.
92 | /// Details about the suspend request.
93 | private void OnSuspending(object sender, SuspendingEventArgs e)
94 | {
95 | var deferral = e.SuspendingOperation.GetDeferral();
96 | //TODO: Save application state and stop any background activity
97 | deferral.Complete();
98 | }
99 | }
100 | }
101 |
--------------------------------------------------------------------------------
/XAMLDesignTimeSamples.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30218.91
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfdtdSamples", "WpfdtdSamples\WpfdtdSamples.csproj", "{4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UwpdtdSamples", "UwpdtdSamples\UwpdtdSamples.csproj", "{9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Debug|ARM = Debug|ARM
14 | Debug|ARM64 = Debug|ARM64
15 | Debug|x64 = Debug|x64
16 | Debug|x86 = Debug|x86
17 | Release|Any CPU = Release|Any CPU
18 | Release|ARM = Release|ARM
19 | Release|ARM64 = Release|ARM64
20 | Release|x64 = Release|x64
21 | Release|x86 = Release|x86
22 | EndGlobalSection
23 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
24 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
25 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Debug|Any CPU.Build.0 = Debug|Any CPU
26 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Debug|ARM.ActiveCfg = Debug|Any CPU
27 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Debug|ARM.Build.0 = Debug|Any CPU
28 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Debug|ARM64.ActiveCfg = Debug|Any CPU
29 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Debug|ARM64.Build.0 = Debug|Any CPU
30 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Debug|x64.ActiveCfg = Debug|Any CPU
31 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Debug|x64.Build.0 = Debug|Any CPU
32 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Debug|x86.ActiveCfg = Debug|Any CPU
33 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Debug|x86.Build.0 = Debug|Any CPU
34 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Release|Any CPU.ActiveCfg = Release|Any CPU
35 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Release|Any CPU.Build.0 = Release|Any CPU
36 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Release|ARM.ActiveCfg = Release|Any CPU
37 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Release|ARM.Build.0 = Release|Any CPU
38 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Release|ARM64.ActiveCfg = Release|Any CPU
39 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Release|ARM64.Build.0 = Release|Any CPU
40 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Release|x64.ActiveCfg = Release|Any CPU
41 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Release|x64.Build.0 = Release|Any CPU
42 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Release|x86.ActiveCfg = Release|Any CPU
43 | {4C3F48B6-108B-47B0-847A-ECB8ACA8EAEE}.Release|x86.Build.0 = Release|Any CPU
44 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Debug|Any CPU.ActiveCfg = Debug|x64
45 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Debug|Any CPU.Build.0 = Debug|x64
46 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Debug|Any CPU.Deploy.0 = Debug|x64
47 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Debug|ARM.ActiveCfg = Debug|ARM
48 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Debug|ARM.Build.0 = Debug|ARM
49 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Debug|ARM.Deploy.0 = Debug|ARM
50 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Debug|ARM64.ActiveCfg = Debug|ARM64
51 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Debug|ARM64.Build.0 = Debug|ARM64
52 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Debug|ARM64.Deploy.0 = Debug|ARM64
53 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Debug|x64.ActiveCfg = Debug|x64
54 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Debug|x64.Build.0 = Debug|x64
55 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Debug|x64.Deploy.0 = Debug|x64
56 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Debug|x86.ActiveCfg = Debug|x86
57 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Debug|x86.Build.0 = Debug|x86
58 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Debug|x86.Deploy.0 = Debug|x86
59 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Release|Any CPU.ActiveCfg = Release|x86
60 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Release|ARM.ActiveCfg = Release|ARM
61 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Release|ARM.Build.0 = Release|ARM
62 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Release|ARM.Deploy.0 = Release|ARM
63 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Release|ARM64.ActiveCfg = Release|ARM64
64 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Release|ARM64.Build.0 = Release|ARM64
65 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Release|ARM64.Deploy.0 = Release|ARM64
66 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Release|x64.ActiveCfg = Release|x64
67 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Release|x64.Build.0 = Release|x64
68 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Release|x64.Deploy.0 = Release|x64
69 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Release|x86.ActiveCfg = Release|x86
70 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Release|x86.Build.0 = Release|x86
71 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}.Release|x86.Deploy.0 = Release|x86
72 | EndGlobalSection
73 | GlobalSection(SolutionProperties) = preSolution
74 | HideSolutionNode = FALSE
75 | EndGlobalSection
76 | GlobalSection(ExtensibilityGlobals) = postSolution
77 | SolutionGuid = {2394C554-69E0-40BC-B9BE-21DEAC423CE0}
78 | EndGlobalSection
79 | EndGlobal
80 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.rsuser
8 | *.suo
9 | *.user
10 | *.userosscache
11 | *.sln.docstates
12 |
13 | # User-specific files (MonoDevelop/Xamarin Studio)
14 | *.userprefs
15 |
16 | # Build results
17 | [Dd]ebug/
18 | [Dd]ebugPublic/
19 | [Rr]elease/
20 | [Rr]eleases/
21 | x64/
22 | x86/
23 | [Aa][Rr][Mm]/
24 | [Aa][Rr][Mm]64/
25 | bld/
26 | [Bb]in/
27 | [Oo]bj/
28 | [Ll]og/
29 |
30 | # Visual Studio 2015/2017 cache/options directory
31 | .vs/
32 | # Uncomment if you have tasks that create the project's static files in wwwroot
33 | #wwwroot/
34 |
35 | # Visual Studio 2017 auto generated files
36 | Generated\ Files/
37 |
38 | # MSTest test Results
39 | [Tt]est[Rr]esult*/
40 | [Bb]uild[Ll]og.*
41 |
42 | # NUNIT
43 | *.VisualState.xml
44 | TestResult.xml
45 |
46 | # Build Results of an ATL Project
47 | [Dd]ebugPS/
48 | [Rr]eleasePS/
49 | dlldata.c
50 |
51 | # Benchmark Results
52 | BenchmarkDotNet.Artifacts/
53 |
54 | # .NET Core
55 | project.lock.json
56 | project.fragment.lock.json
57 | artifacts/
58 |
59 | # StyleCop
60 | StyleCopReport.xml
61 |
62 | # Files built by Visual Studio
63 | *_i.c
64 | *_p.c
65 | *_h.h
66 | *.ilk
67 | *.meta
68 | *.obj
69 | *.iobj
70 | *.pch
71 | *.pdb
72 | *.ipdb
73 | *.pgc
74 | *.pgd
75 | *.rsp
76 | *.sbr
77 | *.tlb
78 | *.tli
79 | *.tlh
80 | *.tmp
81 | *.tmp_proj
82 | *_wpftmp.csproj
83 | *.log
84 | *.vspscc
85 | *.vssscc
86 | .builds
87 | *.pidb
88 | *.svclog
89 | *.scc
90 |
91 | # Chutzpah Test files
92 | _Chutzpah*
93 |
94 | # Visual C++ cache files
95 | ipch/
96 | *.aps
97 | *.ncb
98 | *.opendb
99 | *.opensdf
100 | *.sdf
101 | *.cachefile
102 | *.VC.db
103 | *.VC.VC.opendb
104 |
105 | # Visual Studio profiler
106 | *.psess
107 | *.vsp
108 | *.vspx
109 | *.sap
110 |
111 | # Visual Studio Trace Files
112 | *.e2e
113 |
114 | # TFS 2012 Local Workspace
115 | $tf/
116 |
117 | # Guidance Automation Toolkit
118 | *.gpState
119 |
120 | # ReSharper is a .NET coding add-in
121 | _ReSharper*/
122 | *.[Rr]e[Ss]harper
123 | *.DotSettings.user
124 |
125 | # JustCode is a .NET coding add-in
126 | .JustCode
127 |
128 | # TeamCity is a build add-in
129 | _TeamCity*
130 |
131 | # DotCover is a Code Coverage Tool
132 | *.dotCover
133 |
134 | # AxoCover is a Code Coverage Tool
135 | .axoCover/*
136 | !.axoCover/settings.json
137 |
138 | # Visual Studio code coverage results
139 | *.coverage
140 | *.coveragexml
141 |
142 | # NCrunch
143 | _NCrunch_*
144 | .*crunch*.local.xml
145 | nCrunchTemp_*
146 |
147 | # MightyMoose
148 | *.mm.*
149 | AutoTest.Net/
150 |
151 | # Web workbench (sass)
152 | .sass-cache/
153 |
154 | # Installshield output folder
155 | [Ee]xpress/
156 |
157 | # DocProject is a documentation generator add-in
158 | DocProject/buildhelp/
159 | DocProject/Help/*.HxT
160 | DocProject/Help/*.HxC
161 | DocProject/Help/*.hhc
162 | DocProject/Help/*.hhk
163 | DocProject/Help/*.hhp
164 | DocProject/Help/Html2
165 | DocProject/Help/html
166 |
167 | # Click-Once directory
168 | publish/
169 |
170 | # Publish Web Output
171 | *.[Pp]ublish.xml
172 | *.azurePubxml
173 | # Note: Comment the next line if you want to checkin your web deploy settings,
174 | # but database connection strings (with potential passwords) will be unencrypted
175 | *.pubxml
176 | *.publishproj
177 |
178 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
179 | # checkin your Azure Web App publish settings, but sensitive information contained
180 | # in these scripts will be unencrypted
181 | PublishScripts/
182 |
183 | # NuGet Packages
184 | *.nupkg
185 | # The packages folder can be ignored because of Package Restore
186 | **/[Pp]ackages/*
187 | # except build/, which is used as an MSBuild target.
188 | !**/[Pp]ackages/build/
189 | # Uncomment if necessary however generally it will be regenerated when needed
190 | #!**/[Pp]ackages/repositories.config
191 | # NuGet v3's project.json files produces more ignorable files
192 | *.nuget.props
193 | *.nuget.targets
194 |
195 | # Microsoft Azure Build Output
196 | csx/
197 | *.build.csdef
198 |
199 | # Microsoft Azure Emulator
200 | ecf/
201 | rcf/
202 |
203 | # Windows Store app package directories and files
204 | AppPackages/
205 | BundleArtifacts/
206 | Package.StoreAssociation.xml
207 | _pkginfo.txt
208 | *.appx
209 |
210 | # Visual Studio cache files
211 | # files ending in .cache can be ignored
212 | *.[Cc]ache
213 | # but keep track of directories ending in .cache
214 | !?*.[Cc]ache/
215 |
216 | # Others
217 | ClientBin/
218 | ~$*
219 | *~
220 | *.dbmdl
221 | *.dbproj.schemaview
222 | *.jfm
223 | *.pfx
224 | *.publishsettings
225 | orleans.codegen.cs
226 |
227 | # Including strong name files can present a security risk
228 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
229 | #*.snk
230 |
231 | # Since there are multiple workflows, uncomment next line to ignore bower_components
232 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
233 | #bower_components/
234 |
235 | # RIA/Silverlight projects
236 | Generated_Code/
237 |
238 | # Backup & report files from converting an old project file
239 | # to a newer Visual Studio version. Backup files are not needed,
240 | # because we have git ;-)
241 | _UpgradeReport_Files/
242 | Backup*/
243 | UpgradeLog*.XML
244 | UpgradeLog*.htm
245 | ServiceFabricBackup/
246 | *.rptproj.bak
247 |
248 | # SQL Server files
249 | *.mdf
250 | *.ldf
251 | *.ndf
252 |
253 | # Business Intelligence projects
254 | *.rdl.data
255 | *.bim.layout
256 | *.bim_*.settings
257 | *.rptproj.rsuser
258 | *- Backup*.rdl
259 |
260 | # Microsoft Fakes
261 | FakesAssemblies/
262 |
263 | # GhostDoc plugin setting file
264 | *.GhostDoc.xml
265 |
266 | # Node.js Tools for Visual Studio
267 | .ntvs_analysis.dat
268 | node_modules/
269 |
270 | # Visual Studio 6 build log
271 | *.plg
272 |
273 | # Visual Studio 6 workspace options file
274 | *.opt
275 |
276 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
277 | *.vbw
278 |
279 | # Visual Studio LightSwitch build output
280 | **/*.HTMLClient/GeneratedArtifacts
281 | **/*.DesktopClient/GeneratedArtifacts
282 | **/*.DesktopClient/ModelManifest.xml
283 | **/*.Server/GeneratedArtifacts
284 | **/*.Server/ModelManifest.xml
285 | _Pvt_Extensions
286 |
287 | # Paket dependency manager
288 | .paket/paket.exe
289 | paket-files/
290 |
291 | # FAKE - F# Make
292 | .fake/
293 |
294 | # JetBrains Rider
295 | .idea/
296 | *.sln.iml
297 |
298 | # CodeRush personal settings
299 | .cr/personal
300 |
301 | # Python Tools for Visual Studio (PTVS)
302 | __pycache__/
303 | *.pyc
304 |
305 | # Cake - Uncomment if you are using it
306 | # tools/**
307 | # !tools/packages.config
308 |
309 | # Tabs Studio
310 | *.tss
311 |
312 | # Telerik's JustMock configuration file
313 | *.jmconfig
314 |
315 | # BizTalk build output
316 | *.btp.cs
317 | *.btm.cs
318 | *.odx.cs
319 | *.xsd.cs
320 |
321 | # OpenCover UI analysis results
322 | OpenCover/
323 |
324 | # Azure Stream Analytics local run output
325 | ASALocalRun/
326 |
327 | # MSBuild Binary and Structured Log
328 | *.binlog
329 |
330 | # NVidia Nsight GPU debugger configuration file
331 | *.nvuser
332 |
333 | # MFractors (Xamarin productivity tool) working folder
334 | .mfractor/
335 |
336 | # Local History for Visual Studio
337 | .localhistory/
338 |
339 | # BeatPulse healthcheck temp database
340 | healthchecksdb
--------------------------------------------------------------------------------
/UwpdtdSamples/UwpdtdSamples.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | x86
7 | {9EFCAAA7-F9FF-4603-A3D4-F9EADDB5227D}
8 | AppContainerExe
9 | Properties
10 | UwpdtdSamples
11 | UwpdtdSamples
12 | en-US
13 | UAP
14 | 10.0.18362.0
15 | 10.0.17763.0
16 | 14
17 | 512
18 | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
19 | true
20 | false
21 |
22 |
23 | true
24 | bin\x86\Debug\
25 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
26 | ;2008
27 | full
28 | x86
29 | false
30 | prompt
31 | true
32 |
33 |
34 | bin\x86\Release\
35 | TRACE;NETFX_CORE;WINDOWS_UWP
36 | true
37 | ;2008
38 | pdbonly
39 | x86
40 | false
41 | prompt
42 | true
43 | true
44 |
45 |
46 | true
47 | bin\ARM\Debug\
48 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
49 | ;2008
50 | full
51 | ARM
52 | false
53 | prompt
54 | true
55 |
56 |
57 | bin\ARM\Release\
58 | TRACE;NETFX_CORE;WINDOWS_UWP
59 | true
60 | ;2008
61 | pdbonly
62 | ARM
63 | false
64 | prompt
65 | true
66 | true
67 |
68 |
69 | true
70 | bin\ARM64\Debug\
71 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
72 | ;2008
73 | full
74 | ARM64
75 | false
76 | prompt
77 | true
78 | true
79 |
80 |
81 | bin\ARM64\Release\
82 | TRACE;NETFX_CORE;WINDOWS_UWP
83 | true
84 | ;2008
85 | pdbonly
86 | ARM64
87 | false
88 | prompt
89 | true
90 | true
91 |
92 |
93 | true
94 | bin\x64\Debug\
95 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
96 | ;2008
97 | full
98 | x64
99 | false
100 | prompt
101 | true
102 |
103 |
104 | bin\x64\Release\
105 | TRACE;NETFX_CORE;WINDOWS_UWP
106 | true
107 | ;2008
108 | pdbonly
109 | x64
110 | false
111 | prompt
112 | true
113 | true
114 |
115 |
116 | PackageReference
117 |
118 |
119 |
120 | App.xaml
121 |
122 |
123 | MainPage.xaml
124 |
125 |
126 |
127 |
128 |
129 | Designer
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 | MSBuild:Compile
145 | Designer
146 |
147 |
148 | MSBuild:Compile
149 | Designer
150 |
151 |
152 |
153 |
154 | 6.2.10
155 |
156 |
157 |
158 | 14.0
159 |
160 |
161 |
168 |
--------------------------------------------------------------------------------
/WpfdtdSamples/MainWindow.xaml:
--------------------------------------------------------------------------------
1 |
13 |
14 |
24 |
25 |
26 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
77 |
78 |
80 |
81 |
82 |
84 |
85 |
86 |
87 |
88 |
89 |
90 | This is an example of a flow document paragaph
91 | DON'T MISS THIS
92 |
93 | Red Text
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 | Donovan
106 | Nicole
107 | Amanda
108 | Olia
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 | Scott
117 | Lesser Scott
118 | Terry
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 | Mary
127 | Immo
128 | Mark
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
160 |
161 |
162 |
163 |
164 |
165 |
166 | ComboBox Item #1
167 | ComboBox Item #2
168 | ComboBox Item #3
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
--------------------------------------------------------------------------------