Grafika i multimedia

Platforma Windows Presentation Foundation (WPF) zapewnia obsługę multimediów, grafiki wektorowej, animacji i kompozycji zawartości, co ułatwia deweloperom tworzenie interesujących interfejsów użytkownika i zawartości. Za pomocą programu Visual Studio można tworzyć grafiki wektorowe lub złożone animacje i integrować multimedia z aplikacjami.

W tym temacie przedstawiono funkcje grafiki, animacji i multimediów platformy WPF, które umożliwiają dodawanie grafiki, efektów przejścia, dźwięku i wideo do aplikacji.

Uwaga

Korzystanie z typów WPF w usłudze systemu Windows jest zdecydowanie odradzane. Jeśli spróbujesz użyć typów WPF w usłudze systemu Windows, usługa może nie działać zgodnie z oczekiwaniami.

Co nowego w grafice i multimediach na platformie WPF 4

Wprowadzono kilka zmian związanych z grafiką i animacjami.

  • Zaokrąglanie układu

    Gdy krawędź obiektu przypada w środku urządzenia pikselowego, niezależny od DPI system graficzny może tworzyć artefakty renderowania, takie jak rozmyte lub półprzezroczyste krawędzie. Poprzednie wersje platformy WPF obejmowały przyciąganie pikseli w celu ułatwienia obsługi tego przypadku. W programie Silverlight 2 wprowadzono zaokrąglanie układu, co jest kolejnym sposobem przenoszenia elementów, dzięki czemu krawędzie przypadają w granicach całych pikseli. Teraz platforma WPF obsługuje zaokrąglanie układu za pomocą właściwości dołączonej UseLayoutRounding w elemencie FrameworkElement.

  • Kompozycja zapisywana w pamięci podręcznej

    Korzystając z nowych klas BitmapCache i BitmapCacheBrush, można zapisywać w pamięci podręcznej złożoną część drzewa wizualnego jako mapę bitową i znacznie skrócić czas renderowania. Mapa bitowa nadal reaguje na dane wejściowe użytkownika, takie jak kliknięcia myszy, i można ją namalować na innych elementach tak samo jak w przypadku dowolnego pędzla.

  • Obsługa programu do cieniowania pikseli Pixel Shader 3

    Platforma WPF 4 jest oparta na obsłudze typu ShaderEffect wprowadzonej na platformie WPF 3.5 SP1 przez umożliwianie aplikacjom pisania efektów przy użyciu programu do cieniowania pikseli (PS, Pixel Shader) w wersji 3.0. Model cieniowania PS 3.0 jest bardziej zaawansowany niż PS 2.0, co pozwala na jeszcze więcej efektów na obsługiwanym sprzęcie.

  • Zwalnianie funkcji

    Animacje można ulepszyć za pomocą funkcji easingu, co zapewnia dodatkową kontrolę nad zachowaniem animacji. Można na przykład zastosować klasę ElasticEase do animacji, aby nadać animacji sprężyste zachowanie. Aby uzyskać więcej informacji, zobacz typy easingu w przestrzeni nazw System.Windows.Media.Animation.

Grafika i renderowanie

Platforma WPF obejmuje obsługę wysokiej jakości grafiki 2D. Funkcje obejmują pędzle, geometrie, obrazy, kształty i przekształcenia. Aby uzyskać więcej informacji, zobacz Grafika. Renderowanie elementów graficznych jest oparte na klasie Visual. Struktura obiektów wizualnych na ekranie jest opisywana przez drzewo wizualne. Aby uzyskać więcej informacji, zobacz Omówienie renderowania grafiki na platformie WPF.

Kształty 2D

Platforma WPF udostępnia bibliotekę powszechnie używanych, wektorowych kształtów 2D, takich jak prostokąty i wielokropki, które przedstawiono na poniższej ilustracji.

Diagram showing ellipses and rectangles.

Te wewnętrzne kształty platformy WPF nie są tylko kształtami: są to programowalne elementy implementujące wiele funkcji, których oczekujesz od najczęściej używanych kontrolek, obejmuje dane wejściowe z klawiatury i myszy. W poniższym przykładzie pokazano, jak obsłużyć zdarzenie MouseUp wywołane przez kliknięcie elementu Ellipse.

<Window
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="Window1" >
  <Ellipse Fill="LightBlue" MouseUp="ellipseButton_MouseUp" />
</Window>
public partial class Window1  : Window
{
    void ellipseButton_MouseUp(object sender, MouseButtonEventArgs e)
    {
        MessageBox.Show("You clicked the ellipse!");
    }
}
Partial Public Class Window1
    Inherits Window
    Private Sub ellipseButton_MouseUp(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
        MessageBox.Show("You clicked the ellipse!")
    End Sub
End Class

Na poniższej ilustracji przedstawiono dane wyjściowe dla powyższych znaczników XAML i pliku codebehind.

A message box saying

Aby uzyskać więcej informacji, zobacz Omówienie kształtów i podstawowego rysowania na platformie WPF. Aby zapoznać się z przykładem wprowadzającym, zobacz Przykład elementów kształtu.

Geometria 2D

Gdy kształty 2D, które udostępnia platforma WPF, nie są wystarczające, można użyć obsługi geometrii i ścieżek zapewnianej przez platformę WPF, aby utworzyć własne. Na poniższej ilustracji pokazano, jak można używać geometrii do tworzenia kształtów, jako pędzla do rysowania i do przycinania innych elementów platformy WPF.

Screenshot showing how you can use geometries to create shapes.

Aby uzyskać więcej informacji, zobacz Omówienie geometrii. Aby zapoznać się z przykładem wprowadzającym, zobacz Przykład geometrii.

Efekty 2D

Platforma WPF udostępnia bibliotekę klas 2D, których można użyć do tworzenia różnych efektów. Funkcja renderowania 2D platformy WPF umożliwia malowanie elementów interfejsu użytkownika, które mają gradienty, mapy bitowe, rysunki i filmy wideo, oraz manipulowanie nimi przy użyciu rotacji, skalowania i pochylania. Poniższa ilustracja przedstawia przykład wielu efektów, które można osiągnąć przy użyciu pędzli WPF.

Illustration showing the different WPF brushes and paint elements.

Aby uzyskać więcej informacji, zobacz Omówienie pędzli WPF. Aby zapoznać się z przykładem wprowadzającym, zobacz Przykład pędzli.

Renderowanie 3D

Platforma WPF udostępnia zestaw funkcji renderowania 3D, które integrują się z obsługą grafiki 2D na platformie WPF, umożliwiając tworzenie bardziej atrakcyjnego układu, interfejsu użytkownika i wizualizacji danych. Na jednym końcu spektrum platforma WPF umożliwia renderowanie obrazów 2D na powierzchniach kształtów 3D, które przedstawiono na poniższej ilustracji.

Screenshot of a sample showing 3D shapes with different textures.

Aby uzyskać więcej informacji, zobacz Omówienie grafiki 3D. Aby zapoznać się z przykładem wprowadzającym, zobacz Przykład pełnych wypełnień 3D.

Animacja

Użyj animacji, aby stosować efekty powiększania, wstrząsania, obracania i zanikania dla kontrolek i elementów, oraz tworzyć interesujące przejścia między stronami i nie tylko. Platforma WPF umożliwia animowanie większości właściwości, dlatego można nie tylko animować większość obiektów WPF, ale także można używać platformy WPF do animowania tworzonych obiektów niestandardowych.

Screenshot of an animated cube.

Aby uzyskać więcej informacji, zobacz Omówienie animacji. Aby zapoznać się z przykładem wprowadzającym, zobacz Galeria przykładów animacji.

Multimedia

Obrazy, wideo i audio to bogate w zawartość multimedialną sposoby przekazywania informacji i środowisk użytkownika.

Obrazy

Obrazy, które obejmują ikony, tła, a nawet części animacji, są główną częścią większości aplikacji. Ponieważ często trzeba używać obrazów, platforma WPF daje możliwość pracy z nimi na różne sposoby. Na poniższej ilustracji przedstawiono tylko jeden z tych sposobów.

Styling sample screenshot

Aby uzyskać więcej informacji, zobacz Omówienie obrazowania.

Wideo i dźwięk

Podstawową funkcją możliwości graficznych WPF jest zapewnienie natywnej obsługi pracy z multimediami, która obejmuje wideo i dźwięk. W poniższym przykładzie pokazano, jak wstawić odtwarzacz multimedialny do aplikacji.

<MediaElement Source="media\numbers.wmv" Width="450" Height="250" />

Biblioteka MediaElement jest w stanie odtwarzać zarówno wideo, jak i dźwięk, oraz jest wystarczająco rozszerzalna, aby umożliwić łatwe tworzenie niestandardowych interfejsów użytkownika.

Aby uzyskać więcej informacji, zobacz Omówienie multimediów.

Zobacz też