Posts

Showing posts from March, 2019

Custom Pushpin in Bing Maps Control for WPF

Image
Pushpins in "Bing Maps Control for WPF" can be styled in XAML. The code below may seem a bit much, but this is actually very flexible and easy to adjust. And it doesn't require code-behind that is forgotten when copying, problems with change of names that isn't reflected in code or overriding rendering events. It also get additional benefits at a later stage since this can also contain text( see below ) be data-bound, bound to other controls or templates or be rotated and transformed. We could also control size or placement according to converters related to real-world sizes like meters or have it's visbility set according to zoom-level. This is out of scope here but I will try to get to that later. In the example below the styles are placed inside the map-control in <m:Map.Resources> . This is handy when designing or for a cut-copy-paste library. But this get quite a bit readable when it's moved into an Application.Resource in App.Xaml or in it...

Remove default Bing Map Layer from the WPF-MapControl

Image
When providing your own tiles to the Map Control in WPF you would want to remove the default map being served by Bing behind your own source. This is the "full" XAML block from one of my example projects: <m:Map Center="48.03,-122.4" Name="MyMap" CredentialsProvider="YOUR-BINGMAP-KEY" ZoomLevel="10"> <m:Map.Mode> <!-- set empty map mode to remove default map layer --> <m:MercatorMode /> </m:Map.Mode> <!-- Included for completeness, but to be replaced by yor own code or wait for a post about this -->     <!-- <local:MyTileLayer x:Name="WebMapLayer" UriFormat="{Binding SelectedTileProvider.UriFormat}"> <m:MapItemsControl ItemsSource="{Binding Places}"> <ItemsControl.ItemTemplate> <DataTemplate> <m:PushPin ...

Bing Maps Control for WPF with Essential Tools

There are alternatives, but the basic Bing Maps for WPF has a lot of resources and a strong documentation available. Microsoft has moved the focus to the UWP-version and the WEB-version, but for desktop applications that requires local file operations this is still the basic tool. I have been using " XAML Map Control " by Clemens Ficher a lot. But since that control is modelled after the features of "BingMaps"the toolkits below will still be relevant. To get started we should get the bing-map-key from Microsoft here: https://www.bingmapsportal.com/ First off there is the Control itself. It can be found on Nuget: PM> Install-Package Microsoft.Maps.MapControl.WPF Then I add the Spatial Toolbox ( see below ). This is not on Nuget, so you have to download it , unpack it, and then include it to your project. You can add a reference to the toolbox project to your solution (Located in the archive folders, and named: Microsoft.Maps.SpatialToolbox.Core and Micros...

Styling code in Blogger posts

On this plattform (Blogger) I wanted to style the code blocks. I found one javascript formatter called highlight.js, and it can be found on this link: https://highlightjs.org/ . To implement this I had to go to the admin-part. Select the menu [Themes], and under the selected theme it is a button named [Edit Html]. And in the window with the hml-code I paste in the following in the <head> section: <script src='https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js'/> <link href='https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles//vs.min.css' rel='stylesheet'/> <script>hljs.initHighlightingOnLoad();</script> In line 2 you can change vs.min.css with other styles like github.min.css or the darker vs2015.min.css or ocean.min.css . This will apply style to all the <pre><code>//nnnn</code></pre> . For this blog theme I have added an override style in [themes] [Cu...

Tip to enable key-events in WPF

Working on a project with editing shapes I came over a problem when I wanted to canced the operation when the user pressed the escape-key. When I added an event handler for KeyPress or KeyDown or even PreviewKeyDown it never fired. This was because the graphical elements didn't actully have focus. For my user-control for the graphic element I solved this by adding this in the constructor: this.Focusable = true; this.FocusVisualStyle = null; The second line ensured that the dotted focus-rectangle also disseapeared. For a xaml-based approach this is the markup: <Canvas Focusable="True" FocusVisualStyle="{x:Null}">  <!-- The shapes or elements like an elipse, rectangle, path or stack-panel... --> </Canvas>

Welcome

Image
Welcome to my ramblings on the web. This blog is planned to contain some useful tips on the projects I'm working on. This is currently things related to SQL, .Net, C#, WPF, Bing Maps, XAML Maps, Geography functions, some 3D woks in .net and Unity. It is meant to be a reposityory to find back when I have wandered off on my many side-tracks. If this is interesting for other too I will just regard that as a non-intended positive side-effect. Photo by Andrew Neel on Unsplash