Today I’ll show you how to do something slightly more complicated with Avalon. First, we’ll start with a grocery list written using Segoe Script, which I showed yesterday.

The markup here is fairly straightforward:
<TextFlow FontFamily="Segoe Script" FontSize="20">
<Paragraph Margin="0, 16">
Honey,
</Paragraph>
<Paragraph>
Please pick these up from the store on your way home:
</Paragraph>
<List Typography.Fractions="Slashed" Margin="16">
<ListItem>3/4 cup sugar</ListItem>
<ListItem>1/2 cow's brain</ListItem>
<ListItem>1/4 lb ostrich filet</ListItem>
</List>
</TextFlow>
Even with a nice font, this list is pretty boring. Let’s add a background and a dropdown list with some smarmy replies:

I’ve tweaked our markup by adding another row to the Grid, placing a ComboBox in the new row. I’ve also used a Rectangle to paint a light yellow background.
<Grid Margin="30">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle Fill="#ffc" Grid.RowSpan="2" />
<!– Trimmed for brevity, see final markup –>
<TextFlow FontFamily="Segoe Script" FontSize="20"
Margin="20, 0" VerticalAlignment="Top" />
<ComboBox FontFamily="Consolas" FontSize="20" Padding="10"
VerticalAlignment="Bottom"
HorizontalAlignment="Center"
Margin="20" Grid.Row="1">
<ComboBoxItem IsSelected="True" FontFamily="Consolas"
FontSize="20">
Yes, Dear
</ComboBoxItem>
<ComboBoxItem FontFamily="Consolas" FontSize="20">
Not tonight
</ComboBoxItem>
<ComboBoxItem FontFamily="Consolas" FontSize="20">
You Never Call
</ComboBoxItem>
</ComboBox>
</Grid>
The note looks a little flat, we’ll add some depth with a subtle gradient on the background and a light shadow:

What I’ve done is changed the background of the Rectangle to a gradient. I’ve also added a second Rectangle with a mostly-transparent gray background and a SkewTransform to add a shadow effect. Here’s our new markup:
<Grid Margin="30">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle Fill="#2666" Grid.RowSpan="2">
<Rectangle.RenderTransform>
<SkewTransform AngleX="1" AngleY="1" Center="0,0"/>
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Fill="VerticalGradient #ffc #fea" Grid.RowSpan="2" />
<!– Trimmed for brevity, see final markup –>
<TextFlow Margin="20, 0" VerticalAlignment="Top" />
<!– Trimmed for brevity, see final markup –>
<ComboBox VerticalAlignment="Bottom"
HorizontalAlignment="Center"
Margin="20" Grid.Row="1" />
</Grid>
Finally, let’s rotate the note slightly and let the note scale intelligently.

I used the RenderTransform property to apply a RotateTransform to our top Grid, then I wrapped the entire Grid within a Viewbox for scaling. Here’s our final, full markup:
<Viewbox xmlns="http://schemas.microsoft.com/winfx/avalon/2005"
xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005">
<Grid Margin="30" Width="300">
<Grid.RenderTransform>
<RotateTransform Angle="-5" Center="150,200"/>
</Grid.RenderTransform>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle Fill="#2666" Grid.RowSpan="2">
<Rectangle.RenderTransform>
<SkewTransform AngleX="1" AngleY="1" Center="0,0"/>
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Fill="VerticalGradient #ffc #fea"
Grid.RowSpan="2" />
<TextFlow FontFamily="Segoe Script" FontSize="20"
Margin="20, 0" VerticalAlignment="Top">
<Paragraph Margin="0, 16">Honey,</Paragraph>
<Paragraph>
Please pick these up from the store on your way home:
</Paragraph>
<List Typography.Fractions="Slashed" Margin="16">
<ListItem>3/4 cup sugar</ListItem>
<ListItem>1/2 cow’s brain</ListItem>
<ListItem>1/4 lb ostrich filet</ListItem>
</List>
</TextFlow>
<ComboBox FontFamily="Consolas" FontSize="20" Padding="10"
VerticalAlignment="Bottom"
HorizontalAlignment="Center"
Margin="20" Grid.Row="1">
<ComboBoxItem IsSelected="True" FontFamily="Consolas"
FontSize="20">
Yes, Dear
</ComboBoxItem>
<ComboBoxItem FontFamily="Consolas" FontSize="20">
Not tonight
</ComboBoxItem>
<ComboBoxItem FontFamily="Consolas" FontSize="20">
You Never Call
</ComboBoxItem>
</ComboBox>
</Grid>
</Viewbox>
Viewing 12 Comments
Thanks. Your comment is awaiting approval by a moderator.
Do you already have an account? Log in and claim this comment.
Do you already have an account? Log in and claim this comment.
Do you already have an account? Log in and claim this comment.
Do you already have an account? Log in and claim this comment.
Do you already have an account? Log in and claim this comment.
Do you already have an account? Log in and claim this comment.
Do you already have an account? Log in and claim this comment.
Do you already have an account? Log in and claim this comment.
Do you already have an account? Log in and claim this comment.
Do you already have an account? Log in and claim this comment.
Do you already have an account? Log in and claim this comment.
Do you already have an account? Log in and claim this comment.
Do you already have an account? Log in and claim this comment.
Trackbacks
(Trackback URL)