windows presentation foundation (wpf)

76
Windows Presentation Foundation (WPF)

Upload: amalie

Post on 25-Feb-2016

71 views

Category:

Documents


4 download

DESCRIPTION

Windows Presentation Foundation (WPF). Vizuális Programozás. WPF. Új grafikus alrendszer 2D és 3D grafika Dokumentumok Média Teljesen vektorgrafika orientált  könnyen nagyítható (pl. felhasználói felület) DirectX szükséges Lebegőpontos koordináták, logikai pixel. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Windows  Presentation  Foundation (WPF)

Windows Presentation Foundation (WPF)

Page 2: Windows  Presentation  Foundation (WPF)

J.Zs.Cs.: Vizuális programozás (c) 2017

WPF 2D és 3D grafika Dokumentumok Média Teljesen vektorgrafika orientált

könnyen nagyítható (pl. felhasználói felület)

DirectX szükséges Lebegőpontos koordináták, logikai

pixel

2

Page 3: Windows  Presentation  Foundation (WPF)

Felület létrehozása, komponensek használata

J.Zs.Cs.: Vizuális programozás (c) 2017

3

Page 4: Windows  Presentation  Foundation (WPF)

Felület létrehozása

C# kódból

XAML – Visual Studio, Expression Blend, Jegyzettömb

J.Zs.Cs.: Vizuális programozás (c) 2017

5

Page 5: Windows  Presentation  Foundation (WPF)

J.Zs.Cs.: Vizuális programozás (c) 2017

Felület C# kódból6

Page 6: Windows  Presentation  Foundation (WPF)

J.Zs.Cs.: Vizuális programozás (c) 2017

Felület XAML kódból

eXtensible Application Markup Language Cél: design és kód különválasztása Profi alkalmazásoknál külön tervező Deklaratív alkalmazásfejlesztési modell

7

Page 7: Windows  Presentation  Foundation (WPF)

XAML Gyökérelemek

Window Page Application

Elem Egy osztály

Attribútum Egy tulajdonság a komponens

osztályában

J.Zs.Cs.: Vizuális programozás (c) 2017

8

Page 8: Windows  Presentation  Foundation (WPF)

BAML

Binary Application Markup Language Az XAML-ben leírt felület bináris

változata Fordításkor keletkezik az XAML-ből EXE-be beágyazva ~\obj\Debug\*.BAML Betöltés az InitializeComponent-

benJ.Zs.Cs.: Vizuális programozás (c) 2017

9

Page 9: Windows  Presentation  Foundation (WPF)

C# - ban

Hivatkozás a nyomógombra a kódban XAML-ben Name="btPróba"

attribútum Az eseménykezelőben

btPróba.Background = Brushes.Red; btPróba.Content = "Felirat";

J.Zs.Cs.: Vizuális programozás (c) 2017

10

Page 10: Windows  Presentation  Foundation (WPF)

Document Outline Tervezési nézetben a

felületet leíró dokumentumhierarchiát megtekinthetjük a Document Outline ablakban

Fa hierarchiák WPF-ben Logikai fa Vizuális fa

J.Zs.Cs.: Vizuális programozás (c) 2017

11

Page 11: Windows  Presentation  Foundation (WPF)

Logikai fa Leírja a szülő és a gyerek

objektumok közötti összefüggést Rácsban nyomógomb, amiben

rács, amiben kép és szöveg Fontos a tulajdonságok öröklése

szempontjából Navigálás: GetParent,

GetChildren, FindLogicalNode

J.Zs.Cs.: Vizuális programozás (c) 2017

12

Page 12: Windows  Presentation  Foundation (WPF)

Vizuális fa

Meghatározza, hogy egy objektum hogyan lesz megjelenítve a grafikus alapelemek felhasználásával (vonalak, négyszögek, stb.)

Fontos a transzformációk szempontjából

J.Zs.Cs.: Vizuális programozás (c) 2017

13

Page 13: Windows  Presentation  Foundation (WPF)

Application osztály

System.Windows.ApplicationTulajdonságok: Current – a futó alkalmazás objektum –

pl. alkalmazás szintű változók, leállítás MainWindow – a fő ablak Windows – az alkalmazást létrehozó

szálból létrehozott ablakok gyűjteménye

J.Zs.Cs.: Vizuális programozás (c) 2017

14

Page 14: Windows  Presentation  Foundation (WPF)

Application osztály

StartupUri – az alkalmazás indításakor automatikusan megnyitott ablak/lap

Properties – az alkalmazásból bárhonnan elérhető adatok tárolása

Application.Current.Properties["Név"]=Érték;Események: Startup Exit

J.Zs.Cs.: Vizuális programozás (c) 2017

15

Page 15: Windows  Presentation  Foundation (WPF)

Vezérlők Nem kell új (származtatott) vezérlőt

írni ahhoz, hogy egy vezérlő megjelenését megváltoztassuk (pl. ellipszis alakú nyomógomb)

Sablonokkal (Template) megoldva Csak akkor kell új vezérlőt írni, ha a

viselkedést akarjuk megváltoztatni

J.Zs.Cs.: Vizuális programozás (c) 2017

16

Page 16: Windows  Presentation  Foundation (WPF)

Core user input controls Button, RadioButton, ComboBox, CheckBox, Calendar, DatePicker, Expander, DataGrid, ListBox, ListView, Slider, ToggleButton, TreeView, ContextMenu, ScrollBar, Slider, TabControl, TextBlock, TextBox, RepeatButton, RichTextBox, Label

J.Zs.Cs.: Vizuális programozás (c) 2017

17

Page 17: Windows  Presentation  Foundation (WPF)

Window and controldecoration

Menu, ToolBar, StatusBar, ToolTip, ProgressBar

J.Zs.Cs.: Vizuális programozás (c) 2017

18

Page 18: Windows  Presentation  Foundation (WPF)

Media controls

Image, MediaElement, SoundPlayerAction

J.Zs.Cs.: Vizuális programozás (c) 2017

19

Page 19: Windows  Presentation  Foundation (WPF)

Tárolók (rétegmenedzserek) Grid – sorok és oszlopok alakíthatók ki UniformGrid – minden cella azonos

méretű StackPanel – vízszintesen vagy

függőlegesen elhelyezett elemek DockPanel – dokkolás támogatása Canvas – koordináta alapú tárolás WrapPanel – az elemek egyenes

vonalban helyezkednek el A tárolók egymásba ágyazhatóak

J.Zs.Cs.: Vizuális programozás (c) 2017

20

Page 20: Windows  Presentation  Foundation (WPF)

Grid és DockPanel

J.Zs.Cs.: Vizuális programozás (c) 2017

21

Page 21: Windows  Presentation  Foundation (WPF)

StackPanel Térköz nélkül helyezi el az

elemeket alapból

J.Zs.Cs.: Vizuális programozás (c) 2017

22

Page 22: Windows  Presentation  Foundation (WPF)

Canvas

J.Zs.Cs.: Vizuális programozás (c) 2017

23

Page 23: Windows  Presentation  Foundation (WPF)

Jobbra igazított menüpont a főmenüben

J.Zs.Cs.: Vizuális programozás (c) 2017

25

Page 24: Windows  Presentation  Foundation (WPF)

Menüpontok függőlegesen középre igazítása

<Menu x:Name="mnFőmenü" Height="30"> <Menu.ItemsPanel> <ItemsPanelTemplate> <DockPanel

HorizontalAlignment="Stretch"/> </ItemsPanelTemplate> </Menu.ItemsPanel> <MenuItem Header="Kever" x:Name="miKever" VerticalAlignment="Center" />

J.Zs.Cs.: Vizuális programozás (c) 2017

26

Page 25: Windows  Presentation  Foundation (WPF)

GridSplitter

<Grid x:Name="grRács"><Grid.ColumnDefinitions>

<ColumnDefinition Width="Auto"/> <ColumnDefinition />

</Grid.ColumnDefinitions> <TextBox Grid.Column="0" MinWidth="100"

Text="TextBox"/><GridSplitter Grid.Column="0" Width="5" /><TextBox Grid.Column="1" TextWrapping="Wrap" Text="TextBox" />

</Grid>

J.Zs.Cs.: Vizuális programozás (c) 2017

27

Page 26: Windows  Presentation  Foundation (WPF)

Eszköztár<ToolBar Height="34" DockPanel.Dock="Top" >

<Button Content="Indít" /><Button ><Image Source="/Ikonok/copy.ico"/></Button><Button><Image Source="/Ikonok/cut.ico"/></Button><Button><Image Source="/Ikonok/delete.ico"/></Button><Button><Image Source="/Ikonok/paste.ico"/></Button>

</ToolBar>

J.Zs.Cs.: Vizuális programozás (c) 2017

Visual Studio Image Library: https://www.microsoft.com/en-us/download/details.aspx?id=35825

28

Page 27: Windows  Presentation  Foundation (WPF)

Ikonok befordítása a szerelvénybe1

Solution Explorerben egy mappa az ikonoknak

Ikonok bemásolása a mappába

Ikonok kijelöléseJ.Zs.Cs.: Vizuális programozás (c) 2017

29

Page 28: Windows  Presentation  Foundation (WPF)

Ikonok befordítása a szerelvénybe2

Properties Build Action=Resource Copy to Output Directory=Do not

copy

Build/Rebuild Solution

J.Zs.Cs.: Vizuális programozás (c) 2017

30

Page 29: Windows  Presentation  Foundation (WPF)

Képek tárolása szerelvényen kívül

Properties Build Action=Content Copy to Output Directory=Copy

always Build/Rebuild Solution

J.Zs.Cs.: Vizuális programozás (c) 2017

31

Page 30: Windows  Presentation  Foundation (WPF)

Többsoros szövegmező

J.Zs.Cs.: Vizuális programozás (c) 2017

32

Page 31: Windows  Presentation  Foundation (WPF)

Események és viselkedés

J.Zs.Cs.: Vizuális programozás (c) 2017

33

Page 32: Windows  Presentation  Foundation (WPF)

Viselkedés

A viselkedést a vezérlő API-ja határozza meg

Parancsok (Commands) – műveletek támogatása: Copy, Cut, Paste, stb.

Viselkedés vagy a kinézet módosítása tulajdonságokkal: font, háttérszín, stb.

Események Funkcionalitást megvalósító metódusok:

Sort, ClearJ.Zs.Cs.: Vizuális programozás (c) 2017

34

Page 33: Windows  Presentation  Foundation (WPF)

Eseménykezelés

Eseményekre fel lehet iratkozni: Design nézetből a Properties ablakban

Alapértelemezett eseményre feliratkozás duplán rákattintva a vezérlőre (pl.: Button-nél a click)

XAML-ből Pl: <Button x:Name="btBack" Content="Vissza" Click="btBack_Click"/>

C# kódbólJ.Zs.Cs.: Vizuális programozás (c) 2017

35

Page 34: Windows  Presentation  Foundation (WPF)

Eseménytípusok Továbbított esemény (Routed Events)

Ha egy vezérlő több elemből épül fel (pl. egy nyomógomb, amin van egy kép és egy szöveg)

Attól függetlenül, hogy a képen, a szövegen vagy a nyomógombon kattintunk ugyanolyan értesítés akarunk kapni

Direkt esemény (Direct Event) – a WinForm-mal azonos módon működik, az eseményt csak az előidéző objektumban dolgozhatjuk fel

J.Zs.Cs.: Vizuális programozás (c) 2017

36

Page 35: Windows  Presentation  Foundation (WPF)

Továbbított esemény

Buborék esemény (Bubbling Event) – először az eseményt kiváltó vezérlő kapja meg, majd az őt tartalmazó rács, majd a nyomógomb, és így tovább felfelé a hierarchiában a gyökér csomópontig.

Lefutó esemény (Tunneling Event) – Preview-al kezdődik a neve, a gyökértől kiindulva halad lefele az esemény előidéző vezérlőhöz. Általában az események blokkolására használják: e.Handled=true;

Először a TE ()majd a BE () következik be

J.Zs.Cs.: Vizuális programozás (c) 2017

37

Page 36: Windows  Presentation  Foundation (WPF)

Commands Egy műveletet több módon is

előidézhetünk: menü, gyorsbillentyű, eszköztár

Kössük őket össze, hogy egyszerűen megoldható legyen a letiltás/engedélyezés → Commands objektumok

Beépített és programozó által definiált parancs osztályok

J.Zs.Cs.: Vizuális programozás (c) 2017

38

Page 37: Windows  Presentation  Foundation (WPF)

Beépített parancs osztályok

ApplicationCommands: pl. vágólap, mentés, megnyitás, új, lezárás, nyomtatás

ComponentCommands: vezérlőktől származó parancsok és információk feldolgozása: pl. ScrollUp

EditingCommands: szövegszerkesztési parancsok: pl. félkövér, dőlt, igazítás

MediaCommands: video és audio lejátszását előíró parancsok: pl. lejátszás, szünet, hangerő, sávválasztás

J.Zs.Cs.: Vizuális programozás (c) 2017

39

Page 38: Windows  Presentation  Foundation (WPF)

CommandBinding A CommandBinding osztály kapcsolja

össze a parancsot és az eseménykezelőt

Eseményei: CanExecute: e.CanExecute=true; Executed

Példa: 05_Szovegszerk

J.Zs.Cs.: Vizuális programozás (c) 2017

40

Page 39: Windows  Presentation  Foundation (WPF)

Vezérlők csatolása

J.Zs.Cs.: Vizuális programozás (c) 2017

41

Page 40: Windows  Presentation  Foundation (WPF)

J.Zs.Cs.: Vizuális programozás (c) 2017

42

Page 41: Windows  Presentation  Foundation (WPF)

Űrlapok, adatbevitel és ellenőrzés

J.Zs.Cs.: Vizuális programozás (c) 2017

43

Page 42: Windows  Presentation  Foundation (WPF)

Párbeszédablakok típusai Megjelenítés módja szerint

Modális ( ShowDialog() ) Nem modális ( Show() )

A megoldás módja szerint Beépített (üzenetablak, common dialog boxes) Saját készítésű (custom dialog box)

Az űrlap egy külön ablakban (párbeszédablak) jelenik meg Az űrlap az alkalmazás főablakában van elhelyezve, de

alapból rejtett

J.Zs.Cs.: Vizuális programozás (c) 2017

44

Page 43: Windows  Presentation  Foundation (WPF)

Beépített párbeszédablakok

Üzenetablak: MessageBox Common Dialog Boxes – Közös

párbeszédablakok (Microsoft.Win32) SaveFileDialog OpenFileDialog PrintDialog

J.Zs.Cs.: Vizuális programozás (c) 2017

45

Page 44: Windows  Presentation  Foundation (WPF)

Egyszerű üzenetablak

MessageBox.Show("Egyszerű üzenetablak");

J.Zs.Cs.: Vizuális programozás (c) 2017

46

Page 45: Windows  Presentation  Foundation (WPF)

Kétgombos üzenetablak

J.Zs.Cs.: Vizuális programozás (c) 2017

47

Page 46: Windows  Presentation  Foundation (WPF)

Háromgombos üzenetablak

J.Zs.Cs.: Vizuális programozás (c) 2017

48

Page 47: Windows  Presentation  Foundation (WPF)

OpenFileDialog

J.Zs.Cs.: Vizuális programozás (c) 2017

49

Page 48: Windows  Presentation  Foundation (WPF)

SaveFileDialog

J.Zs.Cs.: Vizuális programozás (c) 2017

50

Page 49: Windows  Presentation  Foundation (WPF)

PrintDialog

Dokumentumok nyomtatása

PrintDialog pd = new System.Windows.Controls.PrintDialog();pd.PageRangeSelection = PageRangeSelection.AllPages;pd.UserPageRangeEnabled = true;// Megjelenítjük az ablakotNullable<bool> result = pd.ShowDialog();//mire kattintottak if (result == true){ //nyomtatás} J.Zs.Cs.: Vizuális programozás (c) 2017

51

Page 50: Windows  Presentation  Foundation (WPF)

Általános lépések

Párbeszédablak objektum létrehozása Kezdeti megjelenést szabályozó

tulajdonságok beállítása Megjelenítés Ha OK-val zárta be a felhasználó, akkor

módosított tulajdonságok kiolvasása

J.Zs.Cs.: Vizuális programozás (c) 2017

52

Page 51: Windows  Presentation  Foundation (WPF)

Egyéni párbeszédablak (Custom Dialog Box) készítése

Szokásos ablakfelépítés Ne jelenjen meg a tálcán: ShowInTaskbar="False" Jelenjen meg a szülő ablak területén:

WindowStartupLocation="CenterOwner" Melyik vezérlő rendelkezzen kezdetben input fókusszal

(ablak Window tagben beállítva)?FocusManager.FocusedElement= "{Binding ElementName=tbElső}"

OK gomb IsDefault="True" Mégse gomb IsCancel="True" DialogResult tulajdonság true/false

J.Zs.Cs.: Vizuális programozás (c) 2017

53

Page 52: Windows  Presentation  Foundation (WPF)

Űrlap külön ablakban –Jelszóbeviteli párbeszédablak

J.Zs.Cs.: Vizuális programozás (c) 2017

Csatolás

Csatolás

54

Page 53: Windows  Presentation  Foundation (WPF)

Használat

J.Zs.Cs.: Vizuális programozás (c) 2017

55Párbeszédablak

osztálya

Főablak osztálya

Legyen más osztályból is olvasható

Legyen más osztályból is olvasható

Page 54: Windows  Presentation  Foundation (WPF)

Párbeszédablak kezdeti beállítással

Menüpont (főablak XAML)<MenuItem x:Name="miÚj" Header="Új ..." Click="miÚj_Click"/>

Ablak objektum létrehozása és kezdeti beállítások (főablak C#):

var wnd= new wndÚjAdat { Owner= this,

Személy={ Név= "Valaki Eduárd", Átlag= 2}};wndÚjAdat.ShowDialog();

Párbeszédablak megjelenítésewndÚjAdat.ShowDialog();Demo: EgyeniParbeszedAblakJ.Zs.Cs.: Vizuális programozás (c) 2017

56

A pb. ablak osztályában van egy publikus Személy típusú

tulajdonság

Page 55: Windows  Presentation  Foundation (WPF)

Beállítások a párbeszédablak osztályában

J.Zs.Cs.: Vizuális programozás (c) 2017

57

Személy objektum létrehozása az ablak

létrehozásakor

Objektum rácshoz „kötése”

Page 56: Windows  Presentation  Foundation (WPF)

Komplex adatkötés

J.Zs.Cs.: Vizuális programozás (c) 2017

58

Page 57: Windows  Presentation  Foundation (WPF)

Input fókusz és névtérhivatkozás beállítása a megjelenő párbeszédablakban

J.Zs.Cs.: Vizuális programozás (c) 2017

59

Page 58: Windows  Presentation  Foundation (WPF)

Űrlap az alkalmazás főablakában<Window x:Class="Hallgatok.wndFőablak"xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation

xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml

xmlns:hallgatok="clr-namespace:Hallgatok„

Title="Hallgatói adatok" Height="350" Width="525">…<hallgatok:ucHallgatóAdatrögzítés x:Name="ucHallgatóAdatrögzítés"

Grid.Row="1" Visibility= " Collapsed" /><hallgatok:ucHallgatoAdatmodositas

x:Name="ucHallgatóAdatmódosítás" Visibility="Collapsed"

Grid.Row="1"/>J.Zs.Cs.: Vizuális programozás (c) 2017

60

Page 59: Windows  Presentation  Foundation (WPF)

Megjelenítés - elrejtésprivate void miHallgatóAdatrögzítés_Click(object sender,

RoutedEventArgs e){ ucHallgatóAdatmódosítás.Visibility =

Visibility.Collapsed;ucHallgatóAdatrögzítés.Visibility = Visibility.Visible;

}private void miHallgatóMódosítás_Click(object sender,

RoutedEventArgs e){ ucHallgatóAdatrögzítés.Visibility = Visibility.Collapsed;

ucHallgatóAdatmódosítás.Visibility = Visibility.Visible;}

J.Zs.Cs.: Vizuális programozás (c) 2017

61

Page 60: Windows  Presentation  Foundation (WPF)

Adatátadás párbeszédablakoknak és UserControl-oknak

Hagyományos megoldások Konstruktornak átadott paraméter Értékadás egy tulajdonságnak (akár inicializáló

listában) Osztály létrehozása "Globális célra" és abban

statikus adattagban WPF újdonság

Az alkalmazáshoz kapcsolódó tulajdonság gyűjtemény:

Application.Current.Properties

J.Zs.Cs.: Vizuális programozás (c) 2017

62

Page 61: Windows  Presentation  Foundation (WPF)

Tulajdonság gyűjtemény

J.Zs.Cs.: Vizuális programozás (c) 2017

63

Page 62: Windows  Presentation  Foundation (WPF)

Adatok megjelenítése amikor a komponens (UserControl) láthatóvá válik

private void UserControl_IsVisibleChanged(object sender,

DependencyPropertyChangedEventArgs e){ if(!this.IsVisible) return;

dsHallgatók=Application.Current.Properties["dsHallgatók"] as dsHallgatók;

if (dsHallgatók.dtSzakok.Rows.Count > 1){ cbARSzak.ItemsSource =

dsHallgatók.dtSzakok;cbARSzak.DisplayMemberPath = "Szaknév";cbARSzak.SelectedIndex = 0;

}}

J.Zs.Cs.: Vizuális programozás (c) 2017

64

Page 63: Windows  Presentation  Foundation (WPF)

Bevitt adatok ellenőrzése (Validation)

Miért? Biztonság Későbbi kivételek elkerülése Idejében jelezni a felhasználó felé Teljesítménynövelés (pl. többrétegű

alkalmazásokban a kliens és az alkalmazási rétegek közötti felesleges többszörös adatáramlás elkerülése)

J.Zs.Cs.: Vizuális programozás (c) 2017

65

Page 64: Windows  Presentation  Foundation (WPF)

Hogyan? Az ablak OK gombbal történő lezárásához

eseménykezelőt készítünk, és ott egyenként ellenőrizzük az egyes mezőkbe beírt adatokat. Hiba esetén hibaüzenet és az ablakot nem zárjuk be ha az ablakot már bezártuk, akkor újból

megjelenítjük azt (új objektum példány) user control esetén a uc-t nem rejtjük el.

Ún. validációs szabályok segítségével.

J.Zs.Cs.: Vizuális programozás (c) 2017

66

Page 65: Windows  Presentation  Foundation (WPF)

Validációs szabály Egy osztály ValidationRule leszármazottja Egy adatkötéshez rendeljük – egy objektum egy tagját kötjük a

vezérlő ellenőrizni kívánt tulajdonságához Minden vezérlőhöz szabály, egy vezérlőhöz akár több szabály is using System.Windows.Controls; Validate metódus átdefiniálása

J.Zs.Cs.: Vizuális programozás (c) 2017

67

Komponens ObjektumAdatkötés

Validációs szabály

Tulajdonság Tulajdonság

Page 66: Windows  Presentation  Foundation (WPF)

Validate metódus

J.Zs.Cs.: Vizuális programozás (c) 2017

68

Page 67: Windows  Presentation  Foundation (WPF)

Validációs szabály vezérlőhöz rendelése – XAML kódban

J.Zs.Cs.: Vizuális programozás (c) 2017

69 A rácshoz egy daforrás objektumot fogunk rendelni

futási időben

Validációs szabályok kiértékelése már gépelés

közben

Page 68: Windows  Presentation  Foundation (WPF)

Hibás adatbevitelnél piros keret a szövegmező körül

J.Zs.Cs.: Vizuális programozás (c) 2017

70

Page 69: Windows  Presentation  Foundation (WPF)

A validációs metódusban megadott hibaüzenet megjelenítése

Gyorstippben (buborék - ToolTip)

Egy erre célra beépített vezérlőben (pl. TextBlock)

J.Zs.Cs.: Vizuális programozás (c) 2017

71

Page 70: Windows  Presentation  Foundation (WPF)

Megvalósítás Definiálunk egy osztályt, ami megvalósítja az

IValueConverter interfészt – cél a hibaüzenetek egyetlen sztringbe foglalása

Statikus erőforrásként felvesszük a párbeszédablak XAML leírásába

A szövegmező ToolTip tulajdonságának vagy a kiegészítő vezérlő Text tulajdonságának értékét adatkötéssel a szövegmező hibagyűjteményéből vesszük

Az átalakító osztály gondoskodik a sztringgé alakításról

J.Zs.Cs.: Vizuális programozás (c) 2017

72

Page 71: Windows  Presentation  Foundation (WPF)

Átalakító osztály

using System.Windows.Controls; using System.Windows.Data;

J.Zs.Cs.: Vizuális programozás (c) 2017

73

Page 72: Windows  Presentation  Foundation (WPF)

Statikus erőforrás

<Window.Resources><local:HibaÁtalakító

x:Key="Átalakító" /></Window.Resources>

J.Zs.Cs.: Vizuális programozás (c) 2017

74

Page 73: Windows  Presentation  Foundation (WPF)

Hibaüzenet gyorstippben

J.Zs.Cs.: Vizuális programozás (c) 2017

75

Page 74: Windows  Presentation  Foundation (WPF)

Hibaüzenet TextBlock-ban

J.Zs.Cs.: Vizuális programozás (c) 2017

76

Page 75: Windows  Presentation  Foundation (WPF)

Az OK gomb kezelése

J.Zs.Cs.: Vizuális programozás (c) 2017

77

Page 76: Windows  Presentation  Foundation (WPF)

Egy csomópont alatti összes csomópont hibaállapotának ellenőrzése

J.Zs.Cs.: Vizuális programozás (c) 2017

78