TaskbarItemInfo Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje informace o tom, jak je zobrazena miniatura hlavního panelu.
public ref class TaskbarItemInfo sealed : System::Windows::Freezable
public sealed class TaskbarItemInfo : System.Windows.Freezable
type TaskbarItemInfo = class
inherit Freezable
Public NotInheritable Class TaskbarItemInfo
Inherits Freezable
- Dědičnost
Příklady
Následující příklad ukazuje, jak vytvořit TaskbarItemInfo kód v kódu. Obsahuje TaskbarItemInfo kolekci ThumbButtonInfo objektů, které poskytují přístup k příkazům Přehrát a Zastavit z položky hlavního panelu.
<Window.TaskbarItemInfo>
<TaskbarItemInfo x:Name="taskBarItemInfo1"
Overlay="{StaticResource ResourceKey=StopImage}"
ThumbnailClipMargin="80,0,80,140"
Description="Taskbar Item Info Sample">
<TaskbarItemInfo.ThumbButtonInfos>
<ThumbButtonInfoCollection>
<ThumbButtonInfo
DismissWhenClicked="False"
Command="MediaCommands.Play"
CommandTarget="{Binding ElementName=btnPlay}"
Description="Play"
ImageSource="{StaticResource ResourceKey=PlayImage}"/>
<ThumbButtonInfo
DismissWhenClicked="True"
Command="MediaCommands.Stop"
CommandTarget="{Binding ElementName=btnStop}"
Description="Stop"
ImageSource="{StaticResource ResourceKey=StopImage}"/>
</ThumbButtonInfoCollection>
</TaskbarItemInfo.ThumbButtonInfos>
</TaskbarItemInfo>
</Window.TaskbarItemInfo>
Následující kód a kód ukazují předchozí příklad v plném kontextu. Aplikace používá k BackgroundWorker počítání od 0 do 100 a zobrazuje průběh v uživatelském rozhraní. Úloha se dá spustit a zastavit z náhledu hlavního panelu. Průběh se zobrazuje na tlačítku na hlavním panelu.
<Window x:Class="Shell_TaskbarItemSample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="300" Width="300">
<Window.Resources>
<DrawingImage x:Key="PlayImage">
<DrawingImage.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing Brush="Green" Geometry="F1 M 50,25L 0,0L 0,50L 50,25 Z "/>
</DrawingGroup.Children>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
<DrawingImage x:Key="StopImage">
<DrawingImage.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing Brush="Gray" Geometry="F1 M 0,0L 50,0L 50,50L 0,50L 0,0 Z "/>
</DrawingGroup.Children>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Window.Resources>
<Window.CommandBindings>
<CommandBinding Command="MediaCommands.Play"
Executed="StartCommand_Executed"
CanExecute="StartCommand_CanExecute"/>
<CommandBinding Command="MediaCommands.Stop"
Executed="StopCommand_Executed"
CanExecute="StopCommand_CanExecute"/>
</Window.CommandBindings>
<Window.TaskbarItemInfo>
<TaskbarItemInfo x:Name="taskBarItemInfo1"
Overlay="{StaticResource ResourceKey=StopImage}"
ThumbnailClipMargin="80,0,80,140"
Description="Taskbar Item Info Sample">
<TaskbarItemInfo.ThumbButtonInfos>
<ThumbButtonInfoCollection>
<ThumbButtonInfo
DismissWhenClicked="False"
Command="MediaCommands.Play"
CommandTarget="{Binding ElementName=btnPlay}"
Description="Play"
ImageSource="{StaticResource ResourceKey=PlayImage}"/>
<ThumbButtonInfo
DismissWhenClicked="True"
Command="MediaCommands.Stop"
CommandTarget="{Binding ElementName=btnStop}"
Description="Stop"
ImageSource="{StaticResource ResourceKey=StopImage}"/>
</ThumbButtonInfoCollection>
</TaskbarItemInfo.ThumbButtonInfos>
</TaskbarItemInfo>
</Window.TaskbarItemInfo>
<Grid>
<StackPanel>
<TextBlock x:Name="tbCount" FontSize="72" HorizontalAlignment="Center"/>
<StackPanel Orientation="Horizontal">
<Button x:Name="btnPlay" Content="Play" Command="MediaCommands.Play" />
<Button x:Name="btnStop" Content="Stop" Command="MediaCommands.Stop" />
</StackPanel>
</StackPanel>
</Grid>
</Window>
// MainWindow.xaml.cs
using System.ComponentModel;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Shell;
namespace Shell_TaskbarItemSample
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private BackgroundWorker _backgroundWorker = new BackgroundWorker();
public MainWindow()
{
InitializeComponent();
// Set up the BackgroundWorker.
this._backgroundWorker.WorkerReportsProgress = true;
this._backgroundWorker.WorkerSupportsCancellation = true;
this._backgroundWorker.DoWork += new DoWorkEventHandler(bw_DoWork);
this._backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
this._backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
}
private void StartCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
e.Handled = true;
}
private void StartCommand_Executed(object sender, ExecutedRoutedEventArgs e)
{
if (this._backgroundWorker.IsBusy == false)
{
this._backgroundWorker.RunWorkerAsync();
// When the task is started, change the ProgressState and Overlay
// of the taskbar item to indicate an active task.
this.taskBarItemInfo1.ProgressState = TaskbarItemProgressState.Normal;
this.taskBarItemInfo1.Overlay = (DrawingImage)this.FindResource("PlayImage");
}
e.Handled = true;
}
private void StopCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = this._backgroundWorker.WorkerSupportsCancellation;
e.Handled = true;
}
private void StopCommand_Executed(object sender, ExecutedRoutedEventArgs e)
{
this._backgroundWorker.CancelAsync();
e.Handled = true;
}
void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// When the task ends, change the ProgressState and Overlay
// of the taskbar item to indicate a stopped task.
if (e.Cancelled == true)
{
// The task was stopped by the user. Show the progress indicator
// in the paused state.
this.taskBarItemInfo1.ProgressState = TaskbarItemProgressState.Paused;
}
else if (e.Error != null)
{
// The task ended with an error. Show the progress indicator
// in the error state.
this.taskBarItemInfo1.ProgressState = TaskbarItemProgressState.Error;
}
else
{
// The task completed normally. Remove the progress indicator.
this.taskBarItemInfo1.ProgressState = TaskbarItemProgressState.None;
}
// In all cases, show the 'Stopped' overlay.
this.taskBarItemInfo1.Overlay = (DrawingImage)this.FindResource("StopImage");
}
void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
this.tbCount.Text = e.ProgressPercentage.ToString();
// Update the value of the task bar progress indicator.
this.taskBarItemInfo1.ProgressValue = (double)e.ProgressPercentage / 100;
}
void bw_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker _worker = sender as BackgroundWorker;
if (_worker != null)
{
for (int i = 1; i <= 100; i++)
{
if (_worker.CancellationPending == true)
{
e.Cancel = true;
break;
}
else
{
System.Threading.Thread.Sleep(25);
_worker.ReportProgress(i);
}
}
}
}
}
}
' MainWindow.xaml.vb
Imports System.ComponentModel
Imports System.Windows.Shell
Class MainWindow
Private _backgroundWorker As New BackgroundWorker
Public Sub New()
InitializeComponent()
' Set up the BackgroundWorker
Me._backgroundWorker.WorkerReportsProgress = True
Me._backgroundWorker.WorkerSupportsCancellation = True
AddHandler Me._backgroundWorker.DoWork, AddressOf bw_DoWork
AddHandler Me._backgroundWorker.ProgressChanged, AddressOf bw_ProgressChanged
AddHandler Me._backgroundWorker.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted
End Sub
Private Sub StartCommand_CanExecute(ByVal sender As System.Object, ByVal e As System.Windows.Input.CanExecuteRoutedEventArgs)
e.CanExecute = True
e.Handled = True
End Sub
Private Sub StartCommand_Executed(ByVal sender As System.Object, ByVal e As System.Windows.Input.ExecutedRoutedEventArgs)
If Me._backgroundWorker.IsBusy = False Then
Me._backgroundWorker.RunWorkerAsync()
' When the task is started, change the ProgressState and Overlay
' of the taskbar item to indicate an active task.
Me.taskBarItemInfo1.ProgressState = Shell.TaskbarItemProgressState.Normal
Me.taskBarItemInfo1.Overlay = Me.FindResource("PlayImage")
End If
e.Handled = True
End Sub
Private Sub StopCommand_CanExecute(ByVal sender As System.Object, ByVal e As System.Windows.Input.CanExecuteRoutedEventArgs)
e.CanExecute = Me._backgroundWorker.WorkerSupportsCancellation
e.Handled = True
End Sub
Private Sub StopCommand_Executed(ByVal sender As System.Object, ByVal e As System.Windows.Input.ExecutedRoutedEventArgs)
Me._backgroundWorker.CancelAsync()
e.Handled = True
End Sub
Private Sub bw_RunWorkerCompleted(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs)
' When the task ends, change the ProgressState and Overlay
' of the taskbar item to indicate a stopped task.
If e.Cancelled = True Then
' The task was stopped by the user. Show the progress indicator
' in the paused state.
Me.taskBarItemInfo1.ProgressState = TaskbarItemProgressState.Paused
ElseIf e.Error IsNot Nothing Then
' The task ended with an error. Show the progress indicator
' in the error state.
Me.taskBarItemInfo1.ProgressState = TaskbarItemProgressState.Error
Else
' The task completed normally. Remove the progress indicator.
Me.taskBarItemInfo1.ProgressState = TaskbarItemProgressState.None
' In all cases, show the 'Stopped' overlay.
Me.taskBarItemInfo1.Overlay = Me.FindResource("StopImage")
End If
End Sub
Private Sub bw_ProgressChanged(ByVal sender As Object, ByVal e As ProgressChangedEventArgs)
Me.tbCount.Text = e.ProgressPercentage.ToString()
' Update the value of the task bar progress indicator.
Me.taskBarItemInfo1.ProgressValue = e.ProgressPercentage / 100
End Sub
Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs)
Dim _worker As BackgroundWorker = CType(sender, BackgroundWorker)
If _worker IsNot Nothing Then
For i As Integer = 1 To 100 Step 1
If _worker.CancellationPending = True Then
e.Cancel = True
Return
Else
System.Threading.Thread.Sleep(25)
_worker.ReportProgress(i)
End If
Next
End If
End Sub
End Class
Poznámky
Třída TaskbarItemInfo poskytuje spravovanou obálku pro funkce hlavního panelu systému Windows 7. Další informace o rozhraních API prostředí Windows a nativních hlavních panelech najdete v tématu Rozšíření hlavního panelu. TaskbarItemInfo je vystavena jako Window.TaskbarItemInfo vlastnost závislosti na objektu Window.
Hlavní panel systému Windows 7 poskytuje vylepšené funkce, které umožňují používat položku hlavního panelu ke sdělení stavu uživateli a zveřejnění běžných úkolů, když je okno minimalizované nebo skryté. Funkce, které jsou zpřístupněny TaskbarItemInfo třídou není k dispozici ve verzích systému Windows starších než Windows 7. Aplikace, které používají TaskbarItemInfo tuto třídu, můžou stále běžet v dřívějších verzích Windows, ale tato vylepšení hlavního panelu nejsou v dřívějších verzích k dispozici.
Ve Windows 7 můžou být některé funkce hlavního panelu nedostupné v závislosti na nastavení uživatele. Funkce hlavního panelu je například nedostupná, pokud je prostředí Windows Aero zakázané nebo pokud je aplikace spuštěná se zvýšenými oprávněními. Aplikace by měla poskytovat další způsoby interakce s uživatelem, které nezávisí na rozšířených funkcích hlavního panelu ve Windows 7.
Ikony programů v oznamovací oblasti, která je úplně vpravo na hlavním panelu, se obvykle používají ke sdělení stavu aplikace uživateli. Ve výchozím nastavení hlavní panel systému Windows 7 skryje ikony programů v oznamovací oblasti. Můžete ale nastavit Overlay vlastnost pro přidání obrázku na tlačítko hlavního panelu pro informování o stavu, například online stavu v aplikaci pro zasílání zpráv. Překryvný obrázek umožňuje uživatelům zobrazit stav aplikace, i když nevidí ikonu programu v oznamovací oblasti. Průběh spouštění úkolů můžete zobrazit také na tlačítku hlavního panelu ProgressState nastavením vlastností a ProgressValue .
Když přesunete ukazatel myši na tlačítko hlavního panelu, na hlavním panelu systému Windows 7 se zobrazí miniatura aplikace. Ve výchozím nastavení se zobrazí celé okno aplikace. Nastavením vlastnosti můžete určit konkrétní část okna, která se má zobrazit v miniaturě ThumbnailClipMargin . Můžete také zadat Description , který se zobrazí v popisu nad miniaturou hlavního panelu. Popis se zobrazí, i když se miniatura kvůli uživatelskému nastavení nezobrazuje.
Na miniaturu hlavního panelu můžete přidat tlačítka, která poskytují přístup k běžným úkolům bez přepínání do okna aplikace. Například Windows Media Player nabízí tlačítka Přehrát, Pozastavit, Vpřed a Zpět, která umožňují ovládat přehrávání médií z miniatury hlavního panelu, když je aplikace minimalizovaná. Tlačítka v miniaturě hlavního panelu jsou reprezentována ThumbButtonInfo objekty a jsou obsažena v kolekci ThumbButtonInfos .
Následující obrázek znázorňuje vylepšené funkce hlavního panelu windows 7.
Rozšířené funkce hlavního panelu Windows
Konstruktory
TaskbarItemInfo() |
Inicializuje novou instanci TaskbarItemInfo třídy . |
Pole
DescriptionProperty |
Identifikuje Description vlastnost závislosti. |
OverlayProperty |
Identifikuje Overlay vlastnost závislosti. |
ProgressStateProperty |
Identifikuje ProgressState vlastnost závislosti. |
ProgressValueProperty |
Identifikuje ProgressValue vlastnost závislosti. |
ThumbButtonInfosProperty |
Identifikuje ThumbButtonInfos vlastnost závislosti. |
ThumbnailClipMarginProperty |
Identifikuje ThumbnailClipMargin vlastnost závislosti. |
Vlastnosti
CanFreeze |
Získá hodnotu, která označuje, zda objekt lze změnit. (Zděděno od Freezable) |
DependencyObjectType |
Získá, DependencyObjectType který zabalí typ CLR této instance. (Zděděno od DependencyObject) |
Description |
Získá nebo nastaví text pro popis položky na hlavním panelu. |
Dispatcher |
Získá to DispatcherDispatcherObject je přidružena k. (Zděděno od DispatcherObject) |
IsFrozen |
Získá hodnotu, která označuje, zda je objekt aktuálně upravitelný. (Zděděno od Freezable) |
IsSealed |
Získá hodnotu, která označuje, zda je tato instance právě zapečetěna (jen pro čtení). (Zděděno od DependencyObject) |
Overlay |
Získá nebo nastaví obrázek, který se zobrazí nad ikonou programu na tlačítku hlavního panelu. |
ProgressState |
Získá nebo nastaví hodnotu, která určuje, jak je indikátor průběhu zobrazen na tlačítku hlavního panelu. |
ProgressValue |
Získá nebo nastaví hodnotu, která označuje plnost indikátoru průběhu na tlačítku hlavního panelu. |
ThumbButtonInfos |
Získá nebo nastaví kolekci ThumbButtonInfo objektů, které jsou přidruženy k Window. |
ThumbnailClipMargin |
Získá nebo nastaví hodnotu, která určuje část klientské oblasti okna aplikace, která je zobrazena v miniaturě hlavního panelu. |
Metody
CheckAccess() |
Určuje, zda volající vlákno má přístup k tomuto DispatcherObject. (Zděděno od DispatcherObject) |
ClearValue(DependencyProperty) |
Vymaže místní hodnotu vlastnosti. Vlastnost, která má být vymazána, je určena identifikátorem DependencyProperty . (Zděděno od DependencyObject) |
ClearValue(DependencyPropertyKey) |
Vymaže místní hodnotu vlastnosti jen pro čtení. Vlastnost, která se má vymazat, je určena parametrem DependencyPropertyKey. (Zděděno od DependencyObject) |
Clone() |
Vytvoří upravitelný klon objektu Freezablea vytvoří hluboké kopie hodnot objektu. Při kopírování vlastností závislostí objektu tato metoda kopíruje výrazy (které již nemusí být vyřešeny), ale ne animace nebo jejich aktuální hodnoty. (Zděděno od Freezable) |
CloneCore(Freezable) |
Vytvoří instanci klon (hloubkovou kopii) zadaného Freezable pomocí základních (ne animovaných) hodnot vlastností. (Zděděno od Freezable) |
CloneCurrentValue() |
Vytvoří upravitelný klon (hloubkovou kopii) objektu Freezable pomocí jeho aktuálních hodnot. (Zděděno od Freezable) |
CloneCurrentValueCore(Freezable) |
Vytvoří instanci upravitelný klon (hloubkovou kopii) zadaného Freezable pomocí aktuálních hodnot vlastností. (Zděděno od Freezable) |
CoerceValue(DependencyProperty) |
Převede hodnotu zadané vlastnosti závislosti. Toho se dosáhne vyvoláním jakékoli CoerceValueCallback funkce zadané v metadatech vlastnosti závislosti, protože existuje ve volajícím DependencyObjectobjektu . (Zděděno od DependencyObject) |
CreateInstance() |
Inicializuje novou instanci Freezable třídy . (Zděděno od Freezable) |
CreateInstanceCore() |
Při implementaci v odvozené třídě vytvoří novou instanci odvozené Freezable třídy. (Zděděno od Freezable) |
Equals(Object) |
Určuje, zda zadaný DependencyObject je ekvivalentní k aktuálnímu DependencyObject. (Zděděno od DependencyObject) |
Freeze() |
Nastaví aktuální objekt jako neupravitelný a nastaví jeho IsFrozen vlastnost na |
FreezeCore(Boolean) |
Nastaví objekt jako Freezable neupravitelný nebo testuje, jestli ho nelze změnit. (Zděděno od Freezable) |
GetAsFrozen() |
Vytvoří zamrzlou kopii objektu Freezables použitím základních (ne animovaných) hodnot vlastností. Vzhledem k tomu, že kopie je zamrzlá, jsou všechny ukotvené dílčí objekty zkopírovány odkazem. (Zděděno od Freezable) |
GetAsFrozenCore(Freezable) |
Vytvoří instanci zamrznutý klon zadaného Freezable pomocí základních (ne animovaných) hodnot vlastností. (Zděděno od Freezable) |
GetCurrentValueAsFrozen() |
Vytvoří zamrzlou kopii objektu Freezable s použitím aktuálních hodnot vlastností. Vzhledem k tomu, že kopie je zamrzlá, jsou všechny ukotvené dílčí objekty zkopírovány odkazem. (Zděděno od Freezable) |
GetCurrentValueAsFrozenCore(Freezable) |
Vytvoří aktuální instanci zablokovaného klonu zadaného Freezableobjektu . Pokud má objekt animované vlastnosti závislostí, zkopírují se jeho aktuální animované hodnoty. (Zděděno od Freezable) |
GetHashCode() |
Získá hash kód pro tento DependencyObject. (Zděděno od DependencyObject) |
GetLocalValueEnumerator() |
Vytvoří specializovaný enumerátor pro určení vlastností závislostí, které mají místně nastavené hodnoty v tomto DependencyObjectobjektu . (Zděděno od DependencyObject) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
GetValue(DependencyProperty) |
Vrátí aktuální efektivní hodnotu vlastnosti závislosti na této instanci objektu DependencyObject. (Zděděno od DependencyObject) |
InvalidateProperty(DependencyProperty) |
Znovu vyhodnotí efektivní hodnotu pro zadanou vlastnost závislosti. (Zděděno od DependencyObject) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
OnChanged() |
Volána při změně aktuálního Freezable objektu. (Zděděno od Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Zajišťuje, že jsou vytvořeny vhodné ukazatele kontextu pro DependencyObjectType datový člen, který byl právě nastaven. (Zděděno od Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Tento člen podporuje infrastrukturu Windows Presentation Foundation (WPF) a není určen k použití přímo z vašeho kódu. (Zděděno od Freezable) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Přepíše implementaci DependencyObject tak, OnPropertyChanged(DependencyPropertyChangedEventArgs) aby také vyvolala všechny Changed obslužné rutiny v reakci na měnící se vlastnost závislosti typu Freezable. (Zděděno od Freezable) |
ReadLocalValue(DependencyProperty) |
Vrátí místní hodnotu vlastnosti závislosti, pokud existuje. (Zděděno od DependencyObject) |
ReadPreamble() |
Zajišťuje, že Freezable se k souboru přistupuje z platného vlákna. Dědíci Freezable musí tuto metodu volat na začátku jakéhokoli rozhraní API, které čte datové členy, které nejsou vlastnosti závislostí. (Zděděno od Freezable) |
SetCurrentValue(DependencyProperty, Object) |
Nastaví hodnotu vlastnosti závislosti beze změny jejího zdroje hodnoty. (Zděděno od DependencyObject) |
SetValue(DependencyProperty, Object) |
Nastaví místní hodnotu vlastnosti závislosti určenou identifikátorem vlastnosti závislosti. (Zděděno od DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
Nastaví místní hodnotu vlastnosti závislosti jen pro čtení určenou DependencyPropertyKey identifikátorem vlastnosti závislosti. (Zděděno od DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
Vrátí hodnotu, která označuje, zda serializační procesy mají serializovat hodnotu pro zadanou vlastnost závislosti. (Zděděno od DependencyObject) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
VerifyAccess() |
Vynucuje, že volající vlákno má přístup k tomuto DispatcherObject. (Zděděno od DispatcherObject) |
WritePostscript() |
Changed Vyvolá událost pro Freezable a vyvolá jeho OnChanged() metodu. Třídy odvozené z Freezable by měly tuto metodu volat na konci jakéhokoli rozhraní API, které upravuje členy třídy, které nejsou uloženy jako vlastnosti závislosti. (Zděděno od Freezable) |
WritePreamble() |
Ověřuje, že Freezable objekt není zamrznutý a že se k němu přistupuje z platného kontextu podprocesů. Freezable Dědiče by tuto metodu měli volat na začátku jakéhokoli rozhraní API, které zapisuje do datových členů, které nejsou vlastnosti závislostí. (Zděděno od Freezable) |
Událost
Changed |
Vyvolá se při změně objektu Freezable nebo objektu, který obsahuje. (Zděděno od Freezable) |