SHOW:
|
|
- or go back to the newest paste.
1 | //// MainWindow.xaml.cs | |
2 | ||
3 | using System.Windows; | |
4 | using System.Windows.Controls; | |
5 | ||
6 | namespace WpfApplication1 | |
7 | { | |
8 | public partial class MainWindow : Window | |
9 | { | |
10 | public MainWindow() | |
11 | { | |
12 | InitializeComponent(); | |
13 | } | |
14 | ||
15 | private void Button_Click(object sender, RoutedEventArgs e) | |
16 | { | |
17 | var pd = new PrintDialog(); | |
18 | pd.PrintVisual(myVisual, "Test print"); | |
19 | } | |
20 | } | |
21 | } | |
22 | ||
23 | //// MainWindow.xaml | |
24 | ||
25 | <Window x:Class="WpfApplication1.MainWindow" | |
26 | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | |
27 | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | |
28 | xmlns:d="http://schemas.microsoft.com/expression/blend/2008" | |
29 | xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | |
30 | xmlns:local="clr-namespace:WpfApplication1" | |
31 | mc:Ignorable="d" | |
32 | Title="MainWindow" Height="350" Width="525"> | |
33 | <StackPanel> | |
34 | <Button Click="Button_Click" Height="20">click to print</Button> | |
35 | <local:MyVisual x:Name="myVisual" Width="100" Height="100"/> | |
36 | </StackPanel> | |
37 | </Window> | |
38 | ||
39 | //// MyVisual.cs | |
40 | using System.Globalization; | |
41 | using System.Windows; | |
42 | using System.Windows.Media; | |
43 | ||
44 | namespace WpfApplication1 | |
45 | { | |
46 | public class MyVisual : FrameworkElement | |
47 | { | |
48 | private static Typeface _tf = new Typeface("Carlito"); | |
49 | private VisualCollection _visuals; | |
50 | ||
51 | public MyVisual() | |
52 | { | |
53 | _visuals = new VisualCollection(this); | |
54 | - | Loaded += DrawIt_Loaded1; |
54 | + | Loaded += MyVisual_Loaded; |
55 | } | |
56 | ||
57 | protected override Visual GetVisualChild(int index) => _visuals[index]; | |
58 | protected override int VisualChildrenCount => _visuals.Count; | |
59 | ||
60 | - | private void DrawIt_Loaded1(object sender, RoutedEventArgs e) |
60 | + | private void MyVisual_Loaded(object sender, RoutedEventArgs e) |
61 | { | |
62 | var visual = new DrawingVisual(); | |
63 | using (DrawingContext dc = visual.RenderOpen()) | |
64 | { | |
65 | var someText = new FormattedText("Delightful", CultureInfo.CurrentCulture, FlowDirection.LeftToRight, _tf, 52, Brushes.Black); | |
66 | dc.DrawText(someText, new Point(0, 0)); | |
67 | } | |
68 | _visuals.Add(visual); | |
69 | } | |
70 | } | |
71 | } |