johnvisiomvp

Life with Visio and other Microsoft Toys!

Archive for the ‘Windows Phone’ Category

Universal Apps – Sort of?

leave a comment »

In WP8, I can set up a view and use a few SortDescriptions and I have view several my data in a sorted format. Not so with a universal app. The answer I received from the forums is that:

Universal apps are based on WinRT, not Silverlight. As you can see in the relevant APIs:

Windows.UI.XAML.Data.CollectionViewSource does not have a SortDescriptions property.

System.Windows.Data.CollectionViewSource does have a SortDescriptions property.

So, it appears UAs have taken a step back from phone apps.  Sorting, something that should be standard, does not exists.

Enjoy.

John Marshall… Visio MVP       Visio.MVPs.org

Written by johnvisiomvp

July 25, 2014 at 5:48 pm

Universal Apps – Multilingual Toolkit

leave a comment »

I fell in love with the Multilingual Toolkit when it was first introduced and found it very useful to add multiple languages to my apps. The only down side was that the submission process increased with each language. Even so, the Toolkit was useful in translating the text that is submitted with the app. All I had to do was add extra strings to the project, have them translations and then use the translations in the submission.

The XLF files use an industry standard for translators, so it is a very useful way to communicate with translators. The translator may have his own application for handling the XLF file, but the Toolkit does come with a useful app that anyone can use to do the translation. Unfortunately, the first release seemed to indicate that you had to install Visual Studio, the current version still seems to be a part of Visual Studio.

Of course, that familiarity caused problems. When you add languages in WP7 or WP8, the toolkit would automatically add the resource file (resx) and the XLF file for that language. With 8.1, only the XLF file is added. Of course, correcting that mistake is a mistake, only the resource file for the default language is needed. If you add the missing resource files, you will get a cryptic error message about duplication.

Rather than AppResources.resx, 8.1 uses resw files and the name is string/EN/Resources.resw. Converting from resx to resw is just a matter of renaming the extension, but I prefer to just copy all the strings and paste. I have yet to try it, but it should be possible to add the language to the filename as was done in WP7 / WP8.

With 8.1 the C# code for using strings from the resource file is to add

var loader = new Windows.ApplicationModel.Resources.ResourceLoader();

and
ErrorBlock.Text = loader.GetString(“ErrorCode01”)

In the xaml it is a matter of

x:Uid="Help"

to the textblock or button. This will overwrite the content of the Text or Content parameter, but they should be left in for editing. I tend to add an x to the end of the test. Unlike in WP7 and WP8, Visual Studio does not show the resource string in the editor. So the overwritten string are useful for determining the look and feel while editing.

Also  there is no XML that shows the languages being used, so the task of removing a language is just a matter of deleting the appropriate XLF file.

Another interesting thing is that the UIC can change several attributes. So for one use of a UIC, you can change the text and the width for a textblock. In the resource file it would be Help.Text and Help.Width.

Enjoy.

John Marshall… Visio MVP       Visio.MVPs.org

Universal Apps – Navigation

leave a comment »

Unlike the navigation on Windows Phone 7, the navigation is a bit more complex in a Universal App, but luckily, Microsoft has provided some helpers. To add the helpers, you need to create the page with a Basic rather than a Blank page. You will be told that you are missing components and do you want to add them. Accept and the navigation components will be added. One key point that MVP Andy Wigley mentioned in an MVA course on Building Apps for Windows Phone 8.1 JumpStart is that the Blank default MainPage is created with a Blank page rather than a Blank Page. So you need to delete the MainPage and create a new one from a Basic page.

For some reason, I used cut & paste to merge a WP7 project into a UA project and somehow lost the name of the page (It should be pageRoot). Trying to work out what went wrong was not easy. For the most part, the process seemed easy. Create a skeleton app with the name you want, delete MainPage and replace with a new one based on Basic page and cut and paste the code. Ignore the declaration section of the old cold and just copy over the content of the Grid.

The NavigationService.Navigate are replaced with Frame.Navigate(typeof(NextPage));

Most of the code in the cs files are placed in classes using the same name in the Project.Shared folder. So there should be a MainPage.xaml.cs in that folder when you are done. The code in the xaml files will be in the Windows and duplicated in the Phone folders. This is where most of the differences of the Windows and Phone versions of the app will appear.

Andy Wigley’s JumpStart course on MVA is a good start.

Next time languages.

Enjoy.

John Marshall… Visio MVP       Visio.MVPs.org

Written by johnvisiomvp

June 7, 2014 at 4:54 pm