0

(无法添加图片,所以我会尝试解释它)所以我的程序基本上由两部分组成:一个扫描并显示在主窗口(在画布上)的位图图像,以及我制作的画布派生类基本上从图像中获取数据(b&w 值范围为 0-255)并以直方图格式(基本上是条形图)表示它,并覆盖位图图像(它是透明的,因此您仍然可以看到图像)。

好吧,所以我的程序开始工作了,唯一的问题是我的画布派生类在我“刷新”屏幕之前不会伸展。班级的孩子(窗户形状的矩形)不会随着窗户伸展。

到目前为止看起来还不错

但后来我最大化它......

然后,这些矩形恰好停留在它们所在的位置。直到我点击“显示直方图”按钮,它才会消失,然后再次点击它,我得到......

...正是我想要的,直方图在屏幕上的正确位置。所以这是我的问题,我怎样才能让直方图与主窗口一起拉伸?而不是每次都刷新它?

<Border Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" BorderBrush="Black" BorderThickness="5" x:Name="testview">
        <local:DrawingCanvas x:Name="pbHistogram" IsHitTestVisible="False"
                                Width="Auto"
                Background="Transparent"
                Height ="{Binding Path=ActualHeight, ElementName=testview}"/>
    </Border>
4

2 回答 2

0

也许最快、最简单的方法就是把你的画布放在一个 Viewbox 中。

于 2012-09-17T20:27:57.597 回答
0

我知道这不是一个真正的答案,但我认为问题在于画布类本身。它没有自动布局或调整其子元素的大小。链接到 msdn: http: //msdn.microsoft.com/en-us/library/ms609101 (v=vs.100).aspx

您可以尝试连接到主窗口的调整大小事件并调用 buttonpress 调用的相同函数。

于 2012-09-18T07:09:18.297 回答