- Notifications
You must be signed in to change notification settings - Fork1
Windows App Studio Libraries
License
pellea/waslibs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
#Windows App Studio Libraries
This repository contains the source code of the libraries used inWindows App Studio to create our generated apps.
A sample implementation of these libraries is available in the Windows Store:Windows App Studio Uwp Samples. You can see the implementation details in thesource code.
There are three libraries: DataProviders, Uwp and Common. The libraries are also available as Nuget packages.
https://www.nuget.org/packages/WindowsAppStudio.Uwphttps://www.nuget.org/packages/WindowsAppStudio.DataProvidershttps://www.nuget.org/packages/WindowsAppStudio.Common
This library contains XAML controls for Windows 10 appsonly.
##Layout Controls###ResponsiveGridView ControlThe ResponsiveGridView 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.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/ResponsiveGridView
###Pivorama ControlThe Pivorama control allows to visualize a set of elements optimizing the available space to display them. The Pivorama behaves differently based on the screen size: in big screens, it maximizes the number of items displayed using a table kind layout, with the ability to slide horizontally; in small screens, it behaves more like a Pivot control, showing the items in groups, with a heading inviting to slide horizontally. The Pivorama control is ideal to display big number of items in the best way depending on the device form factor.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/Pivorama
###VariableSizedGrid ControlThe VariableSizedGrid control allows to display items from a list using different values for Width and Height item properties. You can control the number of rows and columns to be displayed as well as the items orientation in the panel. Finally, the AspectRatio property allow us to control the relation between Width and Height.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/VariableSizedGrid
###Carousel ControlThe Carousel offer an alternative to image visualization adding horizontal scroll to a set of items. The Carousel control is responsive by design, optimizing the image visualization in the different form factors. You can control properties like the AspectRatio, MaxItems, MinHeight, MaxHeight, GradientOpacity and AlignmentX to properly behave depending on the resolution and space available.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/Carousel
###SliderView ControlThe SliderView control displays a set of images in horizontal layout allowing the user to slide one by one image horizontally. The SliderView control is responsive by design and you can control images the Height and Width as well as optionally decide if you want to show arrows or not to slide the images.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/SliderView
###SectionList ControlThe SectionList control enables the horizontal item visualization adjusting the number of items shown to the available space. A SectionList is composed by one or more SectionListItem which can contain any XAML code. Each SectionListItem may have a Header and a ViewAll button to navigate to the list of items shown. The control shows a progress indicator while loading. If an exception occurs during the load, an error message is shown.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/SectionList
###SplitterCard ControlThe SplitterCard control applies a specific design to strings. For any given string, the controls split the text by spaces. The first two words in the text are displayed one over the other using a specific style and highlighting the first one.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/SplitterCard
##Foundation Controls###HtmlBlockThe HtmlBlock renders Html formatted content using a native Xaml representation. The control is optimized to friendly visualize Html content within your Apps creating a Xaml reading view for your content. It applies a set of default styles to represent each Html tag, the default styles can be overriden as your preference. It supports most common Html tags as well as videos from YouTube and Channel9 embedded using an iframe tag. Following are the currently supported Html tags: a, article, blockQuote, cite, code, dd, details, div, dl, dt, em, figCaption, figure, footer, h1, h2, h3, h4, h5, h6, header, i, img, label, li, main, mark, ol, p, pre, q, section, span, strong, summary, table, td, th, time, tr, ul. Finally, the control does not interpret or parse JavaScript code as is not thought download content from Internet (use the WebView control instead).
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/HtmlBlock
###VisualBreakpointsEnables the definition of different visual breakpoints for a certain layout as well as modifies the properties of child controls based on the breakpoints defined. In other words, adds the ability to change the layout and property values of controls based on the defined 'breakpoint values'. There are two main advantages over the platform VisualStateManager control: 1) all the visual breakpoints are defined in a centralized JSON file, which can reference other JSON files; 2) allows the modification of properties inside controls that belongs to DataTemplates.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/VisualBreakpoints
###ImageEx ControlThe ImageEx control extends the default Image platform control improving the performance and responsiveness of your Apps. Source images are downloaded asynchronously showing a load indicator while in progress. Once downloaded, the source image is stored in the App local cache to preserve resources and load time next time the image needs to be displayed.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/ImageEx
###GifControl ControlThe GifControl allows animated gif renderization in XAML.ImageEx Control determines the format of the inbound image and uses Gif Control in case the image is an animated gif.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/GifControl
###VirtualBox ControlThe VirtualBox control allows to redimension any XAML DataTemplate proportionaly. The control works directly with the underlying ContentPresenter to have a smooth behavior and high optimized performance.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/Virtualbox
###RelativeBox ControlThe RelativeBox control uses XAML to apply a responsive behavior to the DataTemplate configured.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/Relativebox
###Relative and VirtualBoxThe RelativeBox control can be used together with the VirtualBox control to apply a better responsive behavior to the DataTemplate configured.
###SearchBox ControlThe SearchBox control allows to handle the App search feature. You can decide how the control will be displayed using properties Foreground, Background, PlaceHolderText, FontSize, etc. The SearchCommand property establish the command to execute when the user press enter or click the magnifier.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/SearchBox
###InfiniteScroll ControlTo create the Infinite Scroll behavior we use the EndOfScrollCommand attached property. Applying the EndOfScrollCommand to a Xaml control (ListView, GridView or ScrollViewer) we look for changes in the VerticalOffset property. When the VerticalOffset reaches the end of the scrollable size it executes a command in C#. In the sample, the command execution results in loading more items and add them at the end of the item collection.
View code
https://github.com/wasteam/waslibs/blob/master/src/AppStudio.Uwp/Commands/EndOfScrollCommand.cs
##App Services###Navigation ServiceThe NavigationService service handles the complexity of navigating among App pages. It can be used in the main rootFrame as well as in other internal frames, like a ShellControl with Hamburger button.
The navigation can be implemented in multiple ways: using the .NET Type of the page we want to navigate to; using a string with the page name as target page; or through an element which implements the INavigable interface. We can use the NavigationService to open the web browser as well.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Navigation
###AppCache ServiceThe AppCache is a service class which use local storage to maintain persisten information among App executions hiding the complexity of saving to and load from the local storage the elements added to memory.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Cache
##Utilities###ErrorNotification ControlThe ErrorNotificationControl allows to show a message when an exception occurs. You can configure the message background color and the user can close it once read.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/ErrorNotificationControl
###ActionsCommandBar ControlThe ActionsCommandBar control extends the system Windows.UI.Xaml.Controls.CommandBar allowing to dynamically load the AppBarButtons through binding the control to a List of ActionInfo items created from C#. The control can define the AppBarButtons in XAML as well.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Actions
###Animation ExtensionsThe Animation Extensions are a set of extension Methods on the FrameworkElement control which allows to execute animations from C# code. The animations can be invoked asynchronously.
View codehttps://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Extensions
###ConvertersConverters allow you to transform a certain value from a data type in other different value. Using Converters leads to have a cleaner XAML code. In the samples shown, the first converter is used to change the Visibility of an image based in the value a Toggle control. If the Toggle is True (Boolean value), the converter returns 'Visible' for the Visibility property of the image control. When the Toggle is False, it returns 'Collapsed' for the Visibility property.
View codehttps://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Converters
##LabsThis section contains the information for those controls developed but still not being used in the Apps generated by Windows App Studio.
###ResponsiveGridView ControImproved experience and performance for the exsisting ResponsiveGridView control.
View codehttps://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Labs/ResponsiveGridView
###Accordion ControlThe Accordion Control display a set of images stacked vertically, showing the selected image using the full size. The "stacked" images below the selected one are pre-visualized in the stack waiting to be slided vertically. By default, four images are shown in the stack. If the collection have more than four images, the remain ones will appear as the user slide the existing ones.
View codehttps://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Labs/Accordion
###SlideShow ControlThe SlideShow Control creates animated transitions between a set of images. You can control the transitions using the DelayInterval and FadeIntervale properties. The Delay Interval define how many time an image remain displayed before start the transition to the next one; The FadeInterval defines the duration of the face-in efect to display the next image.
View codehttps://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Labs/SlideShow
###ShapeImage ControlAllows to show an image using a specific shape to display it. Currently it supports tree kind of pre-defined shapes: Border, Elipse and Rectangle.
View codehttps://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Labs/ShapeImage
###AutoHide ControlThis is generic control which allows you to hide / show a certain UI control with fade-out / fade-in effect. It is based on the existing user interaction done by mouse movement. If the user does not move the mouse for a certain duration the control contained will be hidden. If mouse move is detected, the control contained will appear.
View codehttps://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Labs/AutoHide
###Mosaic ControlThis responsive control allows to create a random mosaic of images making size variations. The control uses an specific with to create the mosaic.
View codehttps://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Labs/Mosaic
#Data Providers LibraryThis library contains the implementation of all the data sources available inWindows App Studio apps.
This is a Portable Class Library that can be used in:
- Windows 10
- Windows 8.1
- Windows Phone 8.1
Among the Data Provider classes implemented in Windows App Studio, those which access third party data, help handling the complexity of each particular provider (API calls, authentication and authorization requirements, data parsing, etc.) so provides a smooth and uniform way to access the content from these providers. All Data Providers take advantage of the AppCache service to improve the App performance.
##Facebook Data ProviderThe FacebookDataProvider allow to retrieve Facebook data through its API. You have to be registered in Facebook Apps to be able to interact with the Facebook API and you must obtain an AppId and AppSecret to configure the data access. Finally, you must use the Page ID from what you want to get the information.
Further info
https://developers.facebook.com/apps/
https://developers.facebook.com/docs/graph-api/using-graph-api
View Code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.DataProviders/Facebook
##Twitter Data ProviderThe TwitterDataProvider retrieve data using the Twitter API. To be able to request Twitter data, the user must be registered in Twitter Apps and obtain a ConsumerSecret, an AccessToken and an AccessTokenSecret. This Data Provider can retrieve the user TimeLine or gather data by Twitter User Name or Hashtag.Further info
https://apps.twitter.com/
https://dev.twitter.com/rest/public
View Code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.DataProviders/Twitter
##Flickr Data ProviderThe FlickrDataProvider gets images using the Flickr API. You can retrieve content based on tags or you can access the images from a Flickr account by using the UserID. To resolve which UserID is assigned to a certain Flickr account usehttp://idgettr.com/
Further info
https://www.flickr.com/services/feeds/
http://idgettr.com/
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.DataProviders/Flickr
##YouTube Data ProviderThe YouTube Data Provider retrieve data through the YouTube API by using the YouTube ChannelID, the PlaylistID, or a search term. To be able to request data using this provider, you must be registered for Google Developers Console and get an API Key.
Further info
https://console.developers.google.com/projecthttps://dev.twitter.com/rest/public
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.DataProviders/YouTube
##WordPress Data ProviderThe WordPress Data Provider retrieve data from the Word Press blog configured in the property WordPressQuery. You can configure the search in the Data Provider by using one of the following options: Posts, Categories or Tags. The information is read in JSON format and transformed to the WordPressSchema entity. This Data Provider relies on the REST API to access the source content. If the target blog is self-hosted (not in Wordpress.com) it must have the JetPack plug-in installed and the JSON API enabled.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.DataProviders/WordPress
##Rss Data ProviderThe RssDataProvider retrieve information from the configured RSS Url, the data is read form the source in XML format and transformed to a RssSchema entity.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.DataProviders/Rss
##Bing Data ProviderThe Bing DataProvider allows you to retreive Microsoft Bing web search engine results direct to your App.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.DataProviders/Bing
##LocalStorage Data ProviderThis Data Provider access data from the LocalStorage. You can configure which file will be used as content source. The information, stored in JSON format, is transformed to the specified data type.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.DataProviders/LocalStorage
##REST API Data ProviderAmong the Data Provider classes implemented in Windows App Studio, those which access third party data, help handling the complexity of each particular provider (API calls, authentication and authorization requirements, data parsing, etc.) so provides a smooth and uniform way to access the content from these providers. All Data Providers take advantage of the AppCache service to improve the App performance.
The RestApiDataProvider retrieve information from the configured endpoint Url. You can configure de pagination type and items per page.
View code
https://github.com/wasteam/waslibs/tree/master/src/AppStudio.DataProviders/RestApi
This library contains utility classes to create XAML applications.This is a Portable Class Library that can be used in:
- Windows 10
- Windows 8.1
- Windows Phone 8.1
About
Windows App Studio Libraries
Resources
License
Stars
Watchers
Forks
Packages0
Languages
- C#77.5%
- HTML18.2%
- Smalltalk3.7%
- Other0.6%