当前位置:编程学习 > C#/ASP.NET >>

继承Canvas的控件,为何放到上面的其他控件看不到?


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;
            }
        }
    }
}

DrawingCanvas 类继承自Canvas,当我在窗体中使用DrawingCanvas的时候,放到上面的Button无法显示,是什么原因呢? --------------------编程问答-------------------- 显示BUTTON的代码在哪儿 --------------------编程问答--------------------
引用 1 楼 tcmakebest 的回复:
显示BUTTON的代码在哪儿

<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>
--------------------编程问答-------------------- 就是那个在DrawingCanvas中的button2显示不出来 --------------------编程问答-------------------- 这个可不是显示button2的代码,这只是表示包含一个Button2。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,