There's a demo below... try typing into the box. The version used below does not allow duplicates. This is an option in the user control.
The code files are available below:
The code is a little klunky in places and could certainly be improved. I'll try to get round to that when I have some spare time. However, it met the need that I had at the time.
There are a number of areas for improvement, putting in disable functionality and allowing different colours for the selected items.
There are a couple of little tricks that are worth calling out...
In a couple of places I needed to send a message to a control to get it to have a visual interaction. The easiest way I found for doing this was to use a lambda to drop it onto the dispatcher:
Dispatcher.BeginInvoke(() => options.Visibility = Visibility.Collapsed);
These are paths for the right and down arrow:
<Path x:Name="arrowright" VerticalAlignment="Center" Margin="0" Stroke="Gray" Data="M2,8 L6,4 L2,0" StrokeThickness="2"/> <Path x:Name="arrowdown" VerticalAlignment="Center" Margin="0" Stroke="Gray" Data="M8,0 L4,4 L0,0" StrokeThickness="2" Visibility="Collapsed"/>
And this is the path for the cross symbol used in the buttons:
<Path VerticalAlignment="Center" Margin="3" Stroke="Gray" Data="M0,0 L8,8 M8,0 L0,8" StrokeThickness="2"/>
No comments:
Post a Comment