0

私はイメージを持っており、オブジェクトをあるポイントから別のポイントに移動するときに、イメージのビジュアル ブラシを作成しました。しかし、ビジュアルブラシに画像が表示されません。私の長方形が表示されている場合は、画像が表示されていると思われます。

画像を参照してください: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/e8833983-3d73-45e1-8af1-3bc27846441d

コードは次のとおりです。

internal static VisualBrush GetVisualBrushByObject(LabelObject obj, Rect objectRect, int quality, FlowDirection flowdirection)
    {
        DrawingVisual drawingVisual = new DrawingVisual();
        DrawingContext drawingContext = drawingVisual.RenderOpen();
        Rect objectbounds = new Rect(0, 0, objectRect.Width, objectRect.Height);
        if (obj is TextObject)
        {
            TextObject txtObj = obj.Clone() as TextObject;
            DymoTextBlock txtBlock = txtObj.DymoTextBlock as DymoTextBlock;
            objectbounds = new Rect(txtBlock.GetNaturalSize(txtBlock.GetFormattedText(flowdirection)));
        }
        if (obj is ImageObject)
        {
            drawingContext.DrawImage(((ImageObject)obj).Image, objectbounds);
        }

        LabelObject.RenderParams lrp = new LabelObject.RenderParams(drawingContext, new Common.Resolution(96, 96), false, objectbounds, flowdirection);
        obj.Render(lrp);

        VisualBrush vBrush = new VisualBrush();
        vBrush.TileMode = TileMode.None;
        vBrush.Stretch = Stretch.Fill;
        if (obj is ImageObject)
        {
            vBrush.Opacity = 0.4;
        }
        drawingContext.Close();

        vBrush.Visual = drawingVisual;

        return vBrush;
    }

助けてください

ありがとう

4

1 に答える 1

0

Transforms(TranslateTransform) を使用して画像を移動している場合は、ビジュアル ブラシ フェーズで元に戻す必要があります。

于 2012-09-25T16:31:17.837 に答える