110,566
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows;
namespace MyCanvas
{
public class DrawingCanvas : Canvas
{
private VisualCollection visuals;
public DrawingCanvas()
{
visuals = new VisualCollection(this);
}
protected override int VisualChildrenCount
{
get
{
return visuals.Count;
}
}
protected override Visual GetVisualChild(int index)
{
return visuals[index];
}
public void AddVisual(Visual visual)
{
visuals.Add(visual);
}
public void DeleteVisual(Visual visual)
{
visuals.Remove(visual);
}
public DrawingVisual GetVisual(Point point)
{
HitTestResult hitResult = VisualTreeHelper.HitTest(this, point);
return hitResult.VisualHit as DrawingVisual;
}
internal int Count
{
get
{
return visuals.Count;
}
}
}
}
<Window x:Class="XRayCanvas.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" xmlns:my="clr-namespace:MyCanvas">
<Grid>
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="180,18,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
<my:DrawingCanvas Height="237" HorizontalAlignment="Left" Margin="0,62,0,0" x:Name="drawingCanvas1" VerticalAlignment="Top" Width="503">
<Button Canvas.Left="168" Canvas.Top="32" Content="Button" Height="23" Name="button2" Width="75" />
</my:DrawingCanvas>
</Grid>
</Window>