Rick Strahl's Web Log

Wind, waves, code and everything in between...
ASP.NET • C# • HTML5 • JavaScript • AngularJs
Contact   •   Articles   •   Products   •   Support   •   Search
Ad-free experience sponsored by:
ASPOSE - the market leader of .NET and Java APIs for file formats – natively work with DOCX, XLSX, PPT, PDF, images and more

WebLog Posts in Category WPF


Debugging the Web Browser Control with FireBug



If you need to debug JavaScript code or layout issues in a Web Browser control inside of a Windows desktop application, you've probably found that the experience sucks. Although Internet Explorer on which the control is based suppports rich developer tools, those are not available in the Web Browser control. Enter an oldie but goodie: FireBug which is an embeddable Console implementation that provides a lot of the features that you find in modern browser developer tools and with a couple of lines of html you can add this debugger into your application.

Video Rendering Issues for WPF Windows



Recently I ran into a few reports of black screen of death rendering of Markdown Monster when starting up from a very few users of the application. They reported the screen just shows black, while actually being responsive to moving and showing menus etc. Also moving to another screen often fixes the problem. It turns out this is a hardware related issue with WPF with certain video hardware/monitor combinations. In this post I describe the problem and the workaround to get the application to render properly even on compromised hardware.

Faking out the .NET Runtime Version



I've been struggling with DPI Scaling issues in WPF in Markdown Monster and .NET 4.6.2 has a few fixes that address the problems I've been working on. However, requiring 4.6.2 is a problem due to lowish adoption rates and skittishness about installing new versions of .NET. In this post I show a little hack that allows me to compile my app to .NET 4.6.2 but don't require user to have that version installed so those that have it can take advantage of the updates.

Downgrading a .NET Applications from 64 bit to 32 bit for the WebBrowser Control



Recently while working on Markdown Monster I ran into some odd crashes and behaviors when interacting with the Web Browser control in this WPF application. It turns out that some of these inconsistent behaviors are apparently caused by running hte application in 64 bit mode. Switching to 32 bit mode has made the application and Web Browser interaction much more responsive and has stopped the nagging unexplainable crashes. In this post I look at 32 and 64 bit applications in .NET and outline some of the issues I ran into and how I fixed the problem by switching to building a 32 bit app.

WPF Rendering DUCE.Channel Crashes due to Image Loading



I ran into a nasty WPF rendering bug that affected only a few select machines. Rendering problems in WPF can be terribly difificult to debug because there often is no additional information on what failed and the exceptions that occur are not trappable but fall back to application wide error handling. In this post I describe a specific failure caused by a 'bad' image WPF can't deal with and how I tracked it down and fixed it.

Capturing Zoom Operations in the WPF Web Browser Control



If you need to capture Zoom operations in the Web Browser control - either to avoid letting hte user zoom or to capture the zoom operation and take action on it - you need to dig into the Web Browser's DOM events to capture the scroll wheel and key events. In this post I describe how you can do just that by looking at an application that captures scrolling and rather than zooming adjusts the font size of the content.

Detecting and Setting Zoom Level in the WPF WebBrowser Control



Zoom level detection in the Web Browser control is a pain and in this article I describe one approach I used to both capture the current Zoom level in order to adjust font sizes, and then also explicitly set the Zoom level in the Web Browser control of a WPF application.

Creating Single Instance WPF Applications that open multiple Files



If you're building document centric applications, Singleton style EXE applications are pretty common. Rather than creating new windows for each opened file, a more common scenario is to open new tabs in a single instance. In this post I'll describe how to create a WPF application that allows only a single instance to run and passes command line arguments passed in secondary instances to the primary instance and I'll describe some pitfalls that you might have to watch out for.

WPF Localization Guidance Paper Posted on CodePlex



I’m happy to announce that my WPF Localization paper went live a couple of days ago on CodePlex. This document provides an overview of localization in .NET in general as well as specifically to WPF. It covers localization with the rigid LocBaml approach, as well as using Resx resources for binding using markup extensions and attached properties respectively.

WPF Bindings and CurrentCulture Formatting



WPF doesn't apply the CurrentCulture to bindings by default, which is a little... unexpected to say the least. As it turns out there's an easy solution to this problem, but it does require using code to apply the culture specifically in every document.

Getting the App’s Startup Assembly in WPF Designer?



I've run into a vexing problem with a Markup Extension for localization. In this extension I have the need to get a reference to the parent application (the WPF EXE basically) inside the WPF designer/Blend. Due to the runtime environment of the designer I've not been able to make this work short of running the markup extension in the same assembly as the main application.

Resx and BAML Resources in WPF



Resource loading in WPF applications that mix BAML and Resx resources can be very confusing as BAML resources require that all BAML resources are stored in external satellite assemblies.

Rendering a WPF Container to Bitmap



One of WPF's nicer features is its ability to render any visual into a bitmap easily, and so I thought I'd create a simple little tool that would create rounded corner bitmap bars with transparent backgrounds. It's actually quite easy to do, but I ran into a few pitfalls and inconsistencies that make WPF coding oh so much fun.

Hosting a WCF Service in a non-.NET Client



I'm still screwing around Web Connection and trying out a quick proof of concept tonight and thought I'd share a few steps on how to host a WCF in a non .NET client via COM Interop client like Visual FoxPro. This article discusses WCF server and client creation in general terms and in addition covers the interop issues to make it work in these clients.

WPF: How hard could it be to get a SelectedItemTemplate?



Here's a fun one to do in WPF. Say you have a ListBox or ListView that is databound and you want to get at the content of the data template used for binding of the items in the list. In my case I want to trigger an animation when the item is selected to indicate the change. It's quite easy to get a...

Fumblings and Thoughts on WPF DataBinding



So I spent the evening today experimenting with databinding in WPF. Overall I'm very excited about that data binding capabilities in WPF which finally has produced a powerful and reasonably user friendly way to do data binding of just about any type to anything else. WPF makes this easily available...

WPF Experiments: Changing a Live Writer Plug-in to use WPF



Ok so I had a little free time on my hands this weekend and was looking for a simple something to use WPF on. A few weeks back I'd been playing with an Justin Brown's Amazon book plug in for Live Writer, which is part of the Windows Live Writer Plugins on CodePlex. Back when I first looked at his...

Great WPF Book



As I've mentioned off and on I've been boning up on WPF for about a month now. I'd though I'd pass on my thoughs on the book I've enjoyed reading and working through: Windows Presentation Foundation Unleashed (WPF) (Unleashed)by Adam Nathanpublished Dec. 2006Read more... This book rocks -...

Beyond HTML: Rich Internet Applications



Rich Internet Applications (RIA) is a term used to describe non HTML based, low impact Internet applications. RIA’s typically run in the browser (although they don’t have to) and get their data from the Web server over HTTP. One of the big selling points of RIA’s is that they provide many of the...
West Wind  © Rick Strahl, West Wind Technologies, 2005 - 2017