Design view grid is gone

Today we cut a couple of options from the product, but we felt that the ramifications of these cuts warranted talking to the community about it and letting people know about it. I will explain why we decided to do it and talk a little bit about the surrounding area. We want to see what…

13

Feedback wanted – how do you set column widths in your HTML tables?

My PM asked this question once in the forums but we did not get many replies – lets see how many we get in the blogs. How do you set the width of your table columns in HTML tables? Do you: Set a width on one of the cells in the column and clear the…

13

IScrollInfo in Avalon part I

Recently I invested the time to learn how to implement the IScrollInfo interface on a control in Avalon. This was an interesting learning experience, and since the existing documentation for this feature is not out in the wild yet, and I figure that people want to learn how to do this, I decided to write…

11

To <BR&gt or not to &lt;BR&gt, that is the question

One of the little things about a HTML editor is the way that block formatting works. Most users probably don’t realize when they run into these kinds of problems, but they do. The reason why editors have a hard time is because they are trying to emulate a word processor with some things. There are…

10

CSS Options

One thing I have been thinking a lot about lately has been the multitude of ways that CSS can be applied to a document. You can have inline styles, you can have style elements in your page, you can have external style sheets, you can have styles applied by ID, styles applied by classname, styles…

10

IScrollInfo tutorial part IV

After our last installment, which was written many moons ago (literally), the only remaining thing left to do (apart from clean up the code a bit) was to implement the IScrollInfo.MakeVisible method. Somebody has requested that I address this, so I am going to attempt to fulfill that. The idea of MakeVisible is that it…

8

IScrollInfo in Avalon part III

When we last left the application it had the appearance of something that could scroll, but exceptions were being thrown from unimplemented members left and right. This posting will help out with that. Let’s look at the SetVerticalOffset method as the first case. This method is called when the user drags the thumb on the vertical…

8

More advanced attached property use: the Ramora pattern

I like to think of the technique I am about to demonstrate as the Ramora pattern – it allows you to attach a chunk of logic to any existing element that you have. The RadialPanel example showed an example of storing information on an element using attached properties. In that example, we did not need…

7

IScrollInfo in Avalon part II

At the end of the first part we have created a custom panel that implements IScrollInfo, but if you try to scroll we throw exceptions, and we cannot see the content. Since this is a Panel, we need to start seeing content so that we can scroll the content later. First we will implement MeasureOverride….

7

IValueConverter in WPF data binding

One of the handy things that you can do with data binding in WPF is that you convert the data as you pull it from the data source. The mechanism for this is the IValueConverter interface. Let’s say that you have a list of numbers representing positions in a race, and you want to display this…

6