继续聊WPF——数字墨迹B
来源:未知 责任编辑:责任编辑 发表时间:2013-11-15 19:50 点击:次
前面的内容,我们用简单的方法就创建了一个手写板示例,下面,我们再来做一个更为复杂一点的手写板程序。示例程序有两个选项:选择“书写”可以进行手写输入,选择“擦除”,可以去掉不必要的部分,类似橡皮擦的功能。
并且,还可以选择笔触颜色。
首先就是放一个InkCanvas控件,相信都没问题,很简单。
[html]
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<InkCanvas x:Name="myInc" Grid.Row="0" Margin="2" />
.........
/Grid>
接着定义两个类,分别用来保存笔尖颜色的自定义类和集合。
[csharp]
public class MyColor
{
public string ColorName { get; set; }
public SolidColorBrush UserColor { get; set; }
}
public class MyColors : ObservableCollection<MyColor>
{
public MyColors()
{
Add(new MyColor { ColorName = "红", UserColor = new SolidColorBrush(Colors.Red) });
Add(new MyColor { ColorName = "黄", UserColor = new SolidColorBrush(Colors.Yellow) });
Add(new MyColor { ColorName = "蓝", UserColor = new SolidColorBrush(Colors.Blue) });
}
}
切换到XAML视图,把MyColors作为静态资源嵌入到窗体的资源列表中。
并定义一个数据模板,用于在ListBox中显示的项。
[html]
<Window.Resources>
<m:MyColors x:Key="bindColors" />
<DataTemplate x:Key="itemTmp" DataType="{x:Type m:MyColor}">
<StackPanel Orientation="Horizontal">
<Rectangle Height="10" Width="20" Fill="{Binding UserColor}"/>
<TextBlock Text="{Binding ColorName}"/>
</StackPanel>
</DataTemplate>
并且,还可以选择笔触颜色。
首先就是放一个InkCanvas控件,相信都没问题,很简单。
[html]
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<InkCanvas x:Name="myInc" Grid.Row="0" Margin="2" />
.........
/Grid>
接着定义两个类,分别用来保存笔尖颜色的自定义类和集合。
[csharp]
public class MyColor
{
public string ColorName { get; set; }
public SolidColorBrush UserColor { get; set; }
}
public class MyColors : ObservableCollection<MyColor>
{
public MyColors()
{
Add(new MyColor { ColorName = "红", UserColor = new SolidColorBrush(Colors.Red) });
Add(new MyColor { ColorName = "黄", UserColor = new SolidColorBrush(Colors.Yellow) });
Add(new MyColor { ColorName = "蓝", UserColor = new SolidColorBrush(Colors.Blue) });
}
}
切换到XAML视图,把MyColors作为静态资源嵌入到窗体的资源列表中。
并定义一个数据模板,用于在ListBox中显示的项。
[html]
<Window.Resources>
<m:MyColors x:Key="bindColors" />
<DataTemplate x:Key="itemTmp" DataType="{x:Type m:MyColor}">
<StackPanel Orientation="Horizontal">
<Rectangle Height="10" Width="20" Fill="{Binding UserColor}"/>
<TextBlock Text="{Binding ColorName}"/>
</StackPanel>
</DataTemplate>
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>