调整CreatePrintPreviewPages 事件处理程序中的 GridView 项之间的间距

Roy Li - MSFT 33,371 信誉分 Microsoft 供应商
2024-07-16T03:06:02.9833333+00:00

你好

我正在尝试从代码端删除 GridView 项之间的间距。

我在创建打印预览页面时会这样做。

我编写了这样的代码:

        GridView printPageGridView = new GridView();

        List<FrameworkElement> printPreviewPages = new List<FrameworkElement>();

   

void CreatePrintPreviewPages(object sender, PaginateEventArgs e)

        {

            printPageGridView.Items.Clear();

           

            Style style = new Style();

            style.TargetType = typeof(GridViewItem);

            Setter marginSetter = new Setter();

            marginSetter.Property = GridViewItem.MarginProperty;

            marginSetter.Value = 0;

            style.Setters.Add(marginSetter);

            printPageGridView.ItemContainerStyle = style;

            printPageGridView.UpdateLayout();

           

            printPreviewPages.Clear();

            Rectangle r1 = new Rectangle();

            r1.Width = 400;

            r1.Height = 200;

            r1.StrokeThickness = 1;

            r1.Stroke = new SolidColorBrush(Colors.Red);

            Rectangle r2 = new Rectangle();

            r2.Width = 400;

            r2.Height = 200;

            r2.StrokeThickness = 1;

            r2.Stroke = new SolidColorBrush(Colors.Red);

            printPageGridView.Items.Add(r1);

            printPageGridView.Items.Add(r2);

            printPreviewPages.Add(printPageGridView);

            printDocument.SetPreviewPageCount(printPreviewPages.Count, PreviewPageCountType.Final);

        }

但这行不通。打印预览中的“我的页面”还是有间距。

在此情况下,是否可以删除 GridView 项之间的空格?

 

此问题由GridView items spacing code behind, in CreatePrintPreviewPages event handler - Microsoft Q&A总结而来.

通用 Windows 平台 (UWP)
通用 Windows 平台 (UWP)
一个 Microsoft 平台,用于生成和发布适用于 Windows 桌面设备的应用。
50 个问题
0 个注释 无注释
{count} 票

1 个答案

排序依据: 非常有帮助
  1. Junjie Zhu - MSFT 18,486 信誉分 Microsoft 供应商
    2024-07-16T06:01:37.4733333+00:00

    你好,

    根据文档 FrameworkElement.Margin

    默认 Thickness是等于 0 。

    您需要使用 Thickness 来设置 MarginProperty 的值。

    Setter marginSetter = new Setter();
    marginSetter.Property = GridViewItem.MarginProperty;
    marginSetter.Value = new Thickness(0);
    

    谢谢。


    如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。

    注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

    0 个注释 无注释

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。