Represents a render target, which exposes the rendered report pages as UIElement objects.
Namespace: MindFusion.Reporting.Silverlight
Assembly: MindFusion.Reporting.Silverlight
Syntax
C#
Copy Code
|
---|
public interface IRenderTargetWithPages<T> : IRenderTarget where T : UIElement |
Visual Basic
Copy Code
|
---|
Public Interface IRenderTargetWithPages(Of T As UIElement) Implements IRenderTarget |
Example
Below is a sample implementation of this interface, which renders individual pages on separate Canvas objects.
C#
Copy Code
|
---|
class PrintRenderTarget : IRenderTargetWithPages<Canvas> { public PrintRenderTarget() { pages = new List<Canvas>(); }
public void AddPage(Size size) { pages.Add(currentPage = new Canvas()); }
public void BeginRender() { }
public void Render(UIElement element, double left, double top) { Canvas.SetLeft(element, tx + left); Canvas.SetTop(element, ty + top); currentPage.Children.Add(element); }
public void EndRender() { }
public void Translate(double x, double y) { tx += x; ty += y; }
public Canvas[] Pages { get { return pages.ToArray(); } }
private List<Canvas> pages;
private Canvas currentPage;
private double tx;
private double ty; }
|
Visual Basic
Copy Code
|
---|
Class PrintRenderTarget Implements IRenderTargetWithPages(Of Canvas)
Public Sub New()
_pages = New List(Of Canvas)()
End Sub
"size"> Public Sub AddPage(ByVal size As Size) Implements IRenderTarget.AddPage
currentPage = New Canvas() _pages.Add(currentPage)
End Sub
Public Sub BeginRender() Implements IRenderTarget.BeginRender
End Sub
"element"> "left"> "top"> Public Sub Render(ByVal element As UIElement, ByVal left As Double, ByVal top As Double) Implements IRenderTarget.Render
Canvas.SetLeft(element, tx + left) Canvas.SetTop(element, ty + top) currentPage.Children.Add(element)
End Sub
Public Sub EndRender() Implements IRenderTarget.EndRender
End Sub
"x"> "y"> Public Sub Translate(ByVal x As Double, ByVal y As Double) Implements IRenderTarget.Translate
tx = tx + x ty = ty + y
End Sub
Public ReadOnly Property Pages As Canvas() Implements IRenderTargetWithPages(Of Canvas).Pages
Get Return _pages.ToArray() End Get
End Property
Private _pages As List(Of Canvas)
Private currentPage As Canvas
Private tx As Double
Private ty As Double
End Class |
See Also