The Actipro Blog

All the latest UI control development news from Actipro

SyntaxEditor for WPF - Highlighting style configuration part 2

Thanks for your comments on this post and via email on yesterday’s post about getting input on highlighting style configuration.  After reviewing your comments and talking things over internally here, I believe we have a simpler yet very robust way of both registering classification types and how they map to highlighting styles.

In today’s blog post I’d like to follow up on the conversation yesterday.  More...

Filed under: Actipro, In development, WPF

SyntaxEditor for WPF - Need input on highlighting style configuration

Sorry we haven’t made any new SyntaxEditor for WPF posts recently.  We’ve been hammering away at the TODO items in code.  We also have made a ton of performance improvements so that everything from document loading to scrolling is very fast.  It’s cool stuff, but nothing we can show in a screenshot. :)

We’re now on the home stretch towards code completion of the SyntaxEditor for WPF public beta.  Just a few outstanding areas left to work out before it will be ready.

One portion we need to finalize is how best to support highlighting style configuration from your side as a language developer.  Let me describe how highlighting styles work in SyntaxEditor for WPF, they are a little different in concept than in SyntaxEditor 4.0.  More...

Filed under: Actipro, In development, WPF

Mid-March SyntaxEditor for WPF development status

We get a lot of questions asking when SyntaxEditor for WPF will be made available to the public so I’d like to give a brief update on its status.

SyntaxEditor for WPF is not just a clone of SyntaxEditor for WinForms.  While we could have done that and gotten it out a long time ago if we had, we wanted to use this opportunity to take everything we’ve learned over the last few years of being the market leader in code editor controls and come up with an object model that is much more flexible, has a lot more features, better organized, and is open-ended for future growth.  And that’s what we’ve been doing.  More...

Filed under: Actipro, In development, WPF

New poll regarding which minimum .NET framework you use for your WPF applications

At Actipro we try hard to base our development on customer feedback.  One important way we receive feedback is via the use of polls.

For instance, our What IDEs do you use for WPF design/development? helped us determine when to move exclusively to Visual Studio 2008 for WPF Studio sample projects.

Our last poll, Which WPF products do you want to see Actipro bring to market?, has been instrumental in guiding which WPF products we work on next.  From that poll, we know that you are all really looking forward to Editors for WPF and SyntaxEditor for WPF, both of which should be cornerstones for the next major WPF Studio version.

If you haven’t answered our products poll, please do as it will still help us plan for products beyond the next major WPF Studio version.

Now we’d like to get some more information from you.  At some point in the future, we want to move WPF Studio to be based on .NET 3.5 SP1 so that we can take advantage of framework enhancements such as virtualization and improved 3-D.  Please answer our new poll to help us determine when to make this move.

BulletLink  Which minimum .NET framework version do you require for your WPF applications?

Thank you for your time, it makes a difference!

Tags: ,
Filed under: General, Actipro

Editors for WPF beta testing started

Yesterday we started the closed beta testing for our Editors for WPF product.  If you are a WPF Studio customer and would be interested in testing it, we’d love to get your feedback.  Email us if you’d like to help.

Editors for WPF will be one of the primary additions for the next major version of WPF Studio.  We currently are still finishing up some features while the beta test is in progress, however it’s looking great so far.

Built-in Editors

Our editors framework is really flexible and allows you to build your own part-based or masked editors.  The product will ship with a number of predefined editor controls for editing certain types of data. 

Here are the ones we currently have for the beta:

  • Date/time
  • Double
  • Guid
  • Int32
  • Int32Rect
  • Point
  • Rect
  • Size
  • Vector

We also plan on adding some more such as:

  • Color
  • Duration
  • IPAddress
  • SolidColorBrush
  • Thickness
  • TimeSpan
  • Version

Are there any others you’d like to see?  If so, please post your ideas and we’ll get it on our TODO list.

The GUID Editor

One interesting implementation is an editor for Guid objects.  Here is the GUID editor when there is no value:

Guid1 

Note the watermark indicating that there isn’t a value.  If you click on the control to focus it, it transitions to this:

Guid2

In that screenshot, dots show up indicating where characters can be typed.  Alternatively you can click the green plus button to auto-generate a Guid value like this:

Guid3

The checkbox is indicating that there is a value in place.  If you uncheck it, the control resets back to the No GUID state displayed in the first screenshot.

This is a neat editor instance because it incorporates the use of a custom button that performs a task related to the editor’s value, namely generating a new value.  Custom buttons or any other content can be inserted into an editor using our framework.

PropertyGrid Integration

Editors are great for standalone usage, however we’ve also designed them to be well matched for use in our PropertyGrid for WPF control.

PropGrid

A PropertyGrid control showing the use of multiple Editors controls

 

 

 

In the screenshot above (which is a demo that will be included with WPF Studio’s Editors) a PropertyGrid is making use of a number of editors from Editors for WPF to display and edit values.  The RectangleBounds property is using the Rect editor implementation.  The selected SkewX property is using a Double editor implementation that also has constraints on it such that the value must be between –10 and 10.  The spinner knows to only scroll between values within that range.

I hope this gives you a good overview of how the Editors for WPF product can be used.  We’re very excited to be in beta phase and closer to release of this great product.

As a reminder, any WPF Studio customers who have active subscriptions at the time of release will get this for free!

Tags: ,
Filed under: Actipro, In development, WPF

Editors for WPF - Beta testing signup starting

We are close to releasing a Beta version of our Editors for WPF product, and we are looking for beta testers.  Editors for WPF is a suite of controls that can be used to collect, restrict, and validate user input.

How to apply for beta testing

If you are a WPF Studio customer and would like to apply to be an beta tester, please e-mail us with your name, e-mail address, and the organization name under which you own WPF Studio licenses (same as your WPF Studio license’s Licensee).  Only existing WPF Studio customers may apply at this time.

As usual, one requirement of being an beta tester is that you must provide feedback on the product.  If you don't think you'll have the time to do so, then please don't apply.

Support for drop-downs in our parts-based editor (e.g. calendars, lists, etc) is missing from the beta, but is planned for later betas and/or the final release.

Type-specific parts-based editors

The beta will include parts-based editors for DateTime, Double, Guid, Int32, Int32Rect, Point, Rect, Size, and Vector (from System.Windows). We plan to include parts-based editors for a few other types, including Duration and TimeSpan.

We have previously discussed the parts-based editor in this blog post, but would like to walk through a more complete example. The following wizard uses the DateTime parts-based editor for the birthday field.

wizard

Initially the value of the birthday is null, therefore the watermark is shown. The watermark can be fully customized using a DataTemplate, but by default shows the specified text.

BirthdayEntry1

To enter a birthday, you can either click the CheckBox or elsewhere in the control. If we click in the control, then we can see the various parts and begin entry.

BirthdayEntry2

The focus is automatically moved to the first part, so the user can begin entering the birthday. In order to enter the month, the user can type the month name or use the up/down arrow keys. In the image below, the letter 'A' was typed once followed by the Tab key.

When the focus is moved out of the part, it's changes are committed. The remaining parts are automatically initialized based on an "initial value" property. The initial value can be configured manually, or can be automatically updated based on the last non-null value (which allows the value to be retained if nullified). In this case, the initial value uses the default value of DateTime.Today.

BirthdayEntry3

With the focus in the day part, we can type in a valid day. Most of the parts leverage the MaskedTextBox to restrict input, and in this case only one or two digits are allowed. Additionally, the parts can further restrict the user input so that only valid dates can be entered. In this case, the current month of April the day would be restricted to 1 to 30. Assuming we enter 14 and press the tab key, the day value will be committed and focus will move to the year.

BirthdayEntry4

Finally, we can enter the year using 1 to 4 digits. When using 1 or 2 digits, then it is assumed to be a two digit year and will therefore convert to a 4 digit year. The editors use the current system configuration to determine the cut off values. In this example, we typed 75 then pressed the Tab key.

BirthdayEntry5

The value of 75 was converted to 1975, because the two digit years are assumed to be between 1930 and 2029.

DateTimeSettings

Summary

The parts-editors provide a more natural and intuitive way to collect user input. By leveraging the MaskedTextBox and custom validation, the user input is guaranteed to be in the correct format. You can also build a parts-based editor for you own custom types using the framework provided.

We'd love to get your feedback, so please sign up for the beta.

Tags: ,
Filed under: Actipro, In development, WPF