继续聊WPF——数字墨迹B(2)
来源:未知 责任编辑:责任编辑 发表时间:2013-11-15 19:50 点击:次
</Window.Resources>
声明两个RadioButton元素,用于选择手写输入状态。以及一个ListBox控件,数据源就是我们刚才定义的MyColors类。
[html]
<StackPanel Grid.Row="1" Margin="1" Orientation="Horizontal">
<RadioButton x:Name="rdWrite" IsChecked="True" VerticalAlignment="Center"
Content="书写" Checked="rdWrite_Checked" Margin="3,0"/>
<RadioButton x:Name="rdEra" VerticalAlignment="Center" IsChecked="{x:Null}" Content="擦除" Checked="rdEra_Checked" Margin="8,0" />
<ListBox x:Name="myListBox" Margin="12,0" ItemTemplate="{StaticResource itemTmp}" ItemsSource="{StaticResource bindColors}"
SelectionChanged="myListBox_SelectionChanged">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</StackPanel>
为了能让ListBox中的项水平排列,我们要自定义项的面板。
[html]
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
为两个单选按钮编写事件处理程序。
[csharp]
private void rdWrite_Checked(object sender, RoutedEventArgs e)
{
this.myInc.EditingMode = InkCanvasEditingMode.InkAndGesture;
}
private void rdEra_Checked(object sender, RoutedEventArgs e)
{
this.myInc.EraserShape = new EllipseStylusShape(6, 6);
this.myInc.EditingMode = InkCanvasEditingMode.EraseByPoint;
}
修改InkCanvas的EditingMode属性,可以控制其编辑状态,如接收墨迹,或擦除墨迹。
最后,编写ListBox的事件处理程序,以动态修改笔触的颜色。
[csharp]
private void myListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.AddedItems.Count == 0)
{
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>