0

(写真を追加できないので、説明してみます)したがって、私のプログラムは基本的に2つの部分で構成されています。スキャンされてメインウィンドウ(キャンバス上)に表示されるビットマップ画像と、私が作成したキャンバス派生クラスです。基本的に、画像からデータ (0 ~ 255 の範囲の b&w 値) を取得し、それをヒストグラム形式 (基本的には棒グラフ) で表し、ビットマップ画像をオーバーレイします (透明なので画像を表示できます)。

申し分なく、プログラムが機能するようになりました。唯一の問題は、キャンバスの派生クラスが画面を「更新」するまで伸びないことです。クラスの子 (windows shape の四角形) は、window と一緒に伸びません。

ここまでは問題ないようです

しかし、それから私はそれを最大化します...

その後、長方形はそのままの場所にとどまります。「ヒストグラムを表示」ボタンをクリックするまで消えず、もう一度クリックすると...

...まさに私が望むもの、ヒストグラムは画面上の適切な場所にあります。これが私の質問です。どうすればヒストグラムをメインウィンドウで引き伸ばすことができますか? 毎回更新する代わりに?

<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

これが本当の答えではないことはわかっていますが、問題はキャンバス クラス自体にあると思います。子要素の自動レイアウトやサイズ変更はありません。msdn へのリンク: http://msdn.microsoft.com/en-us/library/ms609101(v=vs.100).aspx

あなたが試すことができるのは、メインウィンドウのサイズ変更イベントに接続し、ボタンを押すのと同じ関数を呼び出すことです。

于 2012-09-18T07:09:18.297 に答える
0

おそらく、これを行う最も簡単で簡単な方法は、キャンバスを Viewbox に配置することです。

于 2012-09-17T20:27:57.597 に答える