如何在WPF形状中获得精确测量

时间:2017-01-12 08:16:40

标签: c# wpf

我目前正在WPF中开发一个简单的绘图应用程序。 我的应用程序的一个功能是从用户给定的测量值生成基本几何形状的图像。

所以我只是尝试生成宽度/高度为96个单位的正方形。因此,我应该得到1英寸(根据设备无关单位(1/96英寸))。但是,当我打印生成的图像时,它不到1英寸(边长为2.22厘米)

我使用下面的代码来渲染图像。

   RenderTargetBitmap rtb = new RenderTargetBitmap((Int32)bounds.Width, (Int32)bounds.Height, 96, 96, PixelFormats.Pbgra32);

        DrawingVisual dv = new DrawingVisual();

        using (DrawingContext dc = dv.RenderOpen())
        {
            VisualBrush vb = new VisualBrush(target);
            dc.DrawRectangle(vb, null, new Rect(new Point(), bounds.Size));
        }

        rtb.Render(dv);

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

以下内容在纸张上打印一个“正好”1x1英寸且距离左上角1英寸的矩形:

<Canvas x:Name="canvas">
    <Rectangle Stroke="Black" Width="96" Height="96" Canvas.Left="96" Canvas.Top="96"/>
</Canvas>

代码背后:

var pd = new PrintDialog();

if ((bool)pd.ShowDialog())
{
    pd.PrintVisual(canvas, "");
}