0

私は WPF に問題がありVisualBrushます。ここに、私のアプリケーションからの 2 つの画像があります。大きい方は、テキスト付きのコントロールを示すイメージです。小さい方は、最初にビジュアル ブラシを使用して作成したものからの抜粋です。私の問題は、ビジュアル (のコンテンツVisualBrush) の解像度が小さくなると、ビジュアル ブラシがよりぼやけて見えることです。理由はわかりません。次のコードを使用して、ビジュアル ブラシを宣言します。

 var blendBrush = new VisualBrush
        {
            Visual = Host.Viewer,
            TileMode = TileMode.None,
            AlignmentX = AlignmentX.Left,
            AlignmentY = AlignmentY.Top,
            Stretch = Stretch.None,
            ViewboxUnits = BrushMappingMode.Absolute,
        };

Host.Viewer大きな画像に表示されるコントロールです。コントロールのサイズが変更されるたびにViewBox、次のルーチンで値を更新します。

var viewBox = new System.Windows.Rect(topLeft, new Size(width, height));
        visualBrush.Viewbox = viewBox;

topLeftは開始座標で、widthheightは必要な抽出のサイズです。コントロールがぼやけてしまうのを防ぐ方法を誰かが助けてくれることを願っています!

ありがとうダニエル

4

1 に答える 1

1

さて、私は問題を見つけました。Host.Viewer画像オブジェクトを含むキャンバスを深い部分に含みます。.NET 4.0 以降では、画像がぼやけて見える場合があります。この問題は、UseLayoutRounding = true;およびと Rootparent-object を設定することで解決される可能性があります。BitmapScalingMode = BitmapScalingMode.NearestNeighbor;Canvas

于 2014-09-22T13:44:14.723 に答える