Hostable editor keyboard shortcuts

In my previous post about keyboard shortcuts, I promised a summary of the hostable editor shortcuts. I waited on purpose until after the RC build to make this post. There were a couple of reasons for holding off: we changed the way WF designer shortcuts were scoped, and a bunch of shortcuts were broken in…


Imports designer 101

Oh, the imports designer. This innocuous looking piece of UI packs a lot of functionality in a little designer. You would think that this designer should be pretty straightforward. The original concept of this feature was that this would simply be the place to manage namespaces, much in the same way you would manage using…


End-to-end expression editing feature deck

Hi, today I gave a talk to our support team about the expression editing feature. Since this is all public facing information, I thought I would post the deck. Some of this information is old hat to regular readers of this blog (especially the overview and programmability bits, which I ported straight from previous blog…


Enter and Tab key handling in the ExpressionTextBox

The Enter and Tab keys work a bit differently in the ExpressionTextBox than in the big VB IDE. In the big IDE, Enter and Tab always insert their associated characters. If the IntelliSense completion list is up, Enter selects the item and inserts a new line. We noticed that big IDE behavior does not always…


Expression editing mechanics

This is what happens when you edit an expression in Visual Studio. To simplify things, pretend you started with a blank expression. Here’s what goes on behind the scenes: When you click on an ExpressionTextBox, an instance of the hostable editor is created. As you type, you will notice two things: You have IntelliSense, completion…


Design time expression editing 101

Here are the basic implementation details that you should know about the design time expression editing experience in the WF designer. An expression is bound to an activity argument or property. In the designer, the expressions are displayed inside of an ExpressionTextBox control. You can enter one single expression per ExpressionTextBox. Statements are not supported….