This change adds a CompositeEffect to the effect chain so that the effect output is fully opaque.
This makes the app look better on HDR/WCG displays, where the transparent parts of
the effect output looked different than the opaque parts.
Related work items: #15502173
Accessibility Updates + Fix Featured Color
Update Featured samples color
Change Social section items to links
Make FEatured Samples partial accessible
Make Search page and lists of samples accessible
Add access key accessibility info to search box
Make Flip View Accessible
Related work items: #16156350
Ignore the Unloaded event in CompositionImage if Parent != null. This filters out spurious events that we receive which were causing us to prematurely dispose our surface and visuals in this control.
Related work items: #16158865, #16159585
-fixes some typos
-adds home icon
-fixes image issues in ShyHeader
-modifies ParallaxingListViewItems to remove items and prevent scrolling past boundaries
The seams on the right is caused by an interpolate on Visual border. If we change the border mode to hard, no interpolation in place, seams disappear.
Related work items: #16159371
The telemetry client now initializes async to improve startup performance. Calls to TrackEvent() queue event data until the FlushEvents() is called. This prevents too much work being done on the UI thread when adding instrumentation. FlushEvents() must be called as part of app suspension to ensure events are sent to the telemetry endpoint.
Related work items: #11992405
Switched over to using the ItemInvoked event on NavigationView so that we have the chance to reload the category, even if the selection didn't actually change.
- Creates new data sources with approved assets
- Updates all samples to use new data sources/assets
- Removes all extraneous assets and data sources
- Updates thumbnail and banner images
- Fixes GitHub links for samples
- Additional minor bug fixes
Our splash screen/loading code has lots of issues. This change doesn't fix that. What this change does do is prevent the teaser effect on the main page where you see a peek of the fully loaded content before it animates in for realz. The cause of this was simple - the fake splash screen we used has a color brush that's supposed to match the real splash screen's background and mask out all of the app content behind it. Except that its alpha was set to 1. Out of 255. 😿 While I was at it, I also tweaked the actual color being used to match what Visual Studio said the blue in the asset was.
- This doesn't fix our horrendous load time. Empirically, this appears to be because of the telemetry shit that got pooped into our launch path. Commenting out the telemetry events we fire on launch makes things much snappier. I didn't look too deeply here, but I _believe_ setting the EndpointAddress in the AppTelemetryClient static constructor is what is particularly problematic.
- This doesn't fix the wonkiness in the splash screen code (extended splash screen anyone?)
- This new and improved experience does still have a cute effect of its own - you see the text on the real splash screen fade out before the fake one shows up to match it. I *believe* this is because we're loading the surface for the fake splash screen asynchronously and it's just not there yet by the time the real one is going away. This still looks way better than what we had before, and adding a synchronous path to the image loading code is a project for a different day.
An 'about' page is necessary for hosting the service agreement and privacy statement. Guidance recommendation is to add it in a Settings page, which is how this is architectured
With this change, the sample gallery now dynamically chooses whether to load a Pivot control or a NavigationView for hosting and navigating through the samples. By default it uses a NavigationView where that is available, but can easily be forced to use a Pivot for sanity checking.
The first part of this is creating a C# interface to define the interaction between the hosting UI and the rest of the codebase, and consolidating the navigation model around this. Previously there were a few different places/methods for navigating to samples/other UI. Now there is one.
To implement the abstraction, a new UserControl (SampleGalleryUIIndirector) is created that implements the above interface. MainPage now instantiates one of these. I'm not a huge fan of requiring this useless control, but having it does provide the nice benefit of having an entity that can be referenced in markup rather than requiring all logic/configuration to be done via code behind.
Two other UserControls are also created - one which implements the Pivot version of the UI, and one which implements the NavigationView version. They also each implement the hosting interface. At runtime, the Indirector control determines which one to instantiate, and then forwards all hosting calls onto whichever one it determined.
The Pivot version is implemented mostly the same as the previous version (modulo some bug fixes).
The NavigationView version requires the use of ConditionalMarkup so that it can be defined in markup. Otherwise, the UI would have to be built and configured completely via code, as the markup compiler runs against your minimum supported version. This fact will become relevant later on this description :) This version of the UI is fully functional, but it needs some styling/animations love, and I have some open questions out to the controls team on how to get rid of some of the wonkiness going on there.
There are also a few other miscellaneous cleanup/bug fix things going on here.
This change also bumps the minimum supported version up to RS2, as that is required for conditional XAML support. Conditional XAML is required for the NavigationView as described above.