Back to Devexpress

CompositeLink Class

wpf-devexpress-dot-xpf-dot-printing-7b9dea68.md

latest5.8 KB
Original Source

CompositeLink Class

A composite link that can be used to combine several Printing Links together into a composite document.

Namespace : DevExpress.Xpf.Printing

Assembly : DevExpress.Xpf.Printing.v25.2.dll

NuGet Package : DevExpress.Wpf.Printing

Declaration

csharp
public class CompositeLink :
    TemplatedLink
vb
Public Class CompositeLink
    Inherits TemplatedLink

Remarks

This code example demonstrates how to use the CompositeLink class to combine contents of several printing links in a single document.

View Example

vb
Imports System.Collections.Generic
Imports System.Windows
Imports System.Windows.Documents
Imports DevExpress.Xpf.Grid
Imports DevExpress.Xpf.Printing
' ...

Namespace CompositeLinkExample
    ''' <summary>
    ''' Interaction logic for MainWindow.xaml
    ''' </summary>
    Partial Public Class MainWindow
        Inherits Window

        Public Sub New()
            InitializeComponent()
        End Sub

        Private Sub printButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
            Dim links As New List(Of TemplatedLink)()
            links.Add(New PrintableControlLink(CType(categoriesGrid.View, TableView)))
            links.Add(New PrintableControlLink(CType(productsGrid.View, TableView)))

            Dim compositeLink As New CompositeLink(links)
            PrintHelper.ShowRibbonPrintPreview(Me, compositeLink)
        End Sub
    End Class
End Namespace
xaml
<Window x:Class="CompositeLinkExample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="477" Width="908" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:my="clr-namespace:CompositeLinkExample.nwindDataSetTableAdapters" xmlns:my1="clr-namespace:CompositeLinkExample">
    <Window.Resources>
        <dx:TypedSimpleSource x:Key="TypedSimpleSource" AdapterType="my:CategoriesTableAdapter" ContextType="my1:nwindDataSet" Path="Categories">
            <dx:DesignDataManager.DesignData>
                <dx:DesignDataSettings RowCount="5" />
            </dx:DesignDataManager.DesignData>
        </dx:TypedSimpleSource>
        <dx:TypedSimpleSource x:Key="TypedSimpleSource1" AdapterType="my:ProductsTableAdapter" ContextType="my1:nwindDataSet" Path="Products">
            <dx:DesignDataManager.DesignData>
                <dx:DesignDataSettings RowCount="5" />
            </dx:DesignDataManager.DesignData>
        </dx:TypedSimpleSource>
    </Window.Resources>
    <Grid>
        <dxg:GridControl AutoGenerateColumns="AddNew" EnableSmartColumnsGeneration="True" HorizontalAlignment="Left" Name="categoriesGrid" VerticalAlignment="Top" Height="188" Width="886" ItemsSource="{Binding Path=Data, Source={StaticResource TypedSimpleSource}}">
            <dxg:GridControl.View>
                <dxg:TableView AllowPerPixelScrolling="True" Name="tableView1" />
            </dxg:GridControl.View>
        </dxg:GridControl>
        <dxg:GridControl AutoGenerateColumns="AddNew" EnableSmartColumnsGeneration="True" Height="208" HorizontalAlignment="Left" Margin="0,186,0,0" Name="productsGrid" VerticalAlignment="Top" Width="886" ItemsSource="{Binding Path=Data, Source={StaticResource TypedSimpleSource1}}">
            <dxg:GridControl.View>
                <dxg:TableView AllowPerPixelScrolling="True" Name="tableView2" />
            </dxg:GridControl.View>
        </dxg:GridControl>
        <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="762,403,0,0" Name="printButton" VerticalAlignment="Top" Width="112" Click="printButton_Click" />
    </Grid>
</Window>
csharp
using System.Collections.Generic;
using System.Windows;
using System.Windows.Documents;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Printing;
// ...

namespace CompositeLinkExample {
    public partial class MainWindow : Window {
        public MainWindow() {
            InitializeComponent();
        }

        private void printButton_Click(object sender, RoutedEventArgs e) {
            List<TemplatedLink> links = new List<TemplatedLink>();
            links.Add(new PrintableControlLink((TableView)categoriesGrid.View));
            links.Add(new PrintableControlLink((TableView)productsGrid.View));

            CompositeLink compositeLink = new CompositeLink(links);
            PrintHelper.ShowRibbonPrintPreview(this, compositeLink);
        }
    }
}

The image below demonstrates the result.

Inheritance

Object DispatcherObject DependencyObject LinkBase TemplatedLink CompositeLink

See Also

CompositeLink Members

DevExpress.Xpf.Printing Namespace