Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Троелсен Эндрю, "Язык программирования C#9 и платформа .NET5" бесплатно, без регистрации.
Loaded="MainWindow_Loaded">
Замените элемент
Grid
StackPanel
Image
<StackPanel Background="AliceBlue" Name="myStackPanel">
<Image Name="myImage" Height="80"/>
</StackPanel>
Элемент управления
Image
Source
Loaded
DrawingBrush
MainWindow.cs
using System;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;
Вот реализация обработчика события
Loaded
private void MainWindow_Loaded(
object sender, RoutedEventArgs e)
{
const int TextFontSize = 30;
<b> // Создать объект System.Windows.Media.FormattedText.</b>
FormattedText text = new FormattedText(
"Hello Visual Layer!",
new System.Globalization.CultureInfo("en-us"),
FlowDirection.LeftToRight,
new Typeface(this.FontFamily, FontStyles.Italic,
FontWeights.DemiBold, FontStretches.UltraExpanded),
TextFontSize,
Brushes.Green,
null,
VisualTreeHelper.GetDpi(this).PixelsPerDip);
<b> // Создать объект DrawingVisual и получить объект DrawingContext.</b>
DrawingVisual drawingVisual = new DrawingVisual();
using(DrawingContext drawingContext =
drawingVisual.RenderOpen())
{
<b> // Вызвать любой из методов DrawingContext для визуализации данных.</b>
drawingContext.DrawRoundedRectangle(
Brushes.Yellow, new Pen(Brushes.Black, 5),
new Rect(5, 5, 450, 100), 20, 20);
drawingContext.DrawText(text, new Point(20, 20));
}
<b> // Динамически создать битовое изображение,</b>
<b> // используя данные в объекте DrawingVisual.</b>
RenderTargetBitmap bmp = new RenderTargetBitmap(
500, 100, 100, 90, PixelFormats.Pbgra32);
bmp.Render(drawingVisual);
<b> // Установить источник для элемента управления Image.</b>
myImage.Source = bmp;
}
В коде задействовано несколько новых классов WPF, которые будут кратко описаны ниже. Метод начинается с создания нового объекта
FormattedText
Затем через вызов метода
RenderOpen()
DrawingVisual
DrawingContext
DrawingVisual
DrawingVisual
Несколько последних операторов отображают
DrawingVisual
RenderTagetBitmap
System.Windows.Media.Imaging
Source
Image

На заметку! Пространство имен
System.Windows.Media.Imaging
RenderTargetBitmap
JpegBitmapEncoder
Визуализация графических данных в специальном диспетчере компоновки
Хотя применение
DrawingVisual
Grid
StackPanel
Canvas
Window
Page
UserControl