TaskbarItemInfo Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta le informazioni sul modo in cui viene visualizzata l'anteprima della barra delle applicazioni.
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
- Ereditarietà
Esempio
Nell'esempio seguente viene illustrato come creare un TaskbarItemInfo oggetto nel markup. Contiene TaskbarItemInfo una raccolta di ThumbButtonInfo oggetti che forniscono l'accesso ai comandi Play e Stop dall'elemento della barra delle applicazioni.
<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>
Il markup e il codice seguenti illustrano l'esempio precedente nel contesto completo. L'applicazione usa un BackgroundWorker oggetto per contare da 0 a 100 e visualizza lo stato di avanzamento nell'interfaccia utente. L'attività può essere avviata e arrestata dall'anteprima della barra delle applicazioni. Lo stato di avanzamento viene visualizzato nel pulsante della barra delle applicazioni.
<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
Commenti
La TaskbarItemInfo classe fornisce un wrapper gestito per la funzionalità della barra delle applicazioni di Windows 7. Per altre informazioni sulla shell di Windows e sulle API della barra delle applicazioni native, vedere Estensioni della barra delle applicazioni. TaskbarItemInfo viene esposto come Window.TaskbarItemInfo proprietà di dipendenza in un oggetto Window.
La barra delle applicazioni di Windows 7 offre funzionalità avanzate che consentono di usare l'elemento della barra delle applicazioni per comunicare lo stato a un utente ed esporre attività comuni quando la finestra è ridotta a icona o nascosta. La funzionalità esposta dalla TaskbarItemInfo classe non è disponibile nelle versioni di Windows precedenti a Windows 7. Le applicazioni che usano la TaskbarItemInfo classe possono comunque essere eseguite nelle versioni precedenti di Windows. Tuttavia, questi miglioramenti della barra delle applicazioni non sono disponibili nelle versioni precedenti.
In Windows 7 alcune funzionalità della barra delle applicazioni potrebbero non essere disponibili, a seconda delle impostazioni dell'utente. Ad esempio, la funzionalità della barra delle applicazioni non è disponibile se Windows Aero è disabilitato o se l'applicazione viene avviata con autorizzazioni elevate. L'applicazione deve fornire altri modi per interagire con l'utente che non dipendono dalla funzionalità avanzata della barra delle applicazioni in Windows 7.
Le icone del programma nell'area di notifica, che si trova all'estrema destra della barra delle applicazioni, vengono in genere usate per comunicare lo stato dell'applicazione a un utente. Per impostazione predefinita, la barra delle applicazioni di Windows 7 nasconde le icone del programma nell'area di notifica. È tuttavia possibile impostare la Overlay proprietà per aggiungere un'immagine al pulsante della barra delle applicazioni per comunicare lo stato, ad esempio lo stato online in un'applicazione di messaggistica. L'immagine di sovrapposizione consente agli utenti di visualizzare lo stato dell'applicazione anche se non è possibile visualizzare l'icona del programma nell'area di notifica. È anche possibile visualizzare lo stato di avanzamento delle attività in esecuzione nel pulsante della barra delle applicazioni impostando le ProgressState proprietà e ProgressValue .
La barra delle applicazioni di Windows 7 visualizza un'anteprima dell'applicazione quando si sposta il puntatore del mouse sul pulsante della barra delle applicazioni. Per impostazione predefinita viene visualizzata l'intera finestra dell'applicazione. È possibile specificare una parte specifica della finestra da visualizzare nell'anteprima impostando la ThumbnailClipMargin proprietà . È anche possibile specificare un Description oggetto visualizzato in una descrizione comando sopra l'anteprima della barra delle applicazioni. La descrizione comando viene visualizzata anche quando non è possibile visualizzare l'anteprima a causa delle impostazioni utente.
È possibile aggiungere pulsanti all'anteprima della barra delle applicazioni per fornire l'accesso alle attività comuni senza passare alla finestra dell'applicazione. Ad esempio, Window Media Player fornisce i pulsanti Play, Pause, Forward e Back che consentono di controllare la riproduzione multimediale dall'anteprima della barra delle applicazioni quando l'applicazione viene ridotta al minimo. I pulsanti nell'anteprima ThumbButtonInfos della barra delle applicazioni sono rappresentati dagli ThumbButtonInfo oggetti e sono contenuti nella raccolta.
La figura seguente mostra le funzionalità avanzate della barra delle applicazioni di Windows 7.
delle
Funzionalità avanzate della barra delle applicazioni di Windows
Costruttori
TaskbarItemInfo() |
Inizializza una nuova istanza della classe TaskbarItemInfo. |
Campi
DescriptionProperty |
Identifica la proprietà di dipendenza Description. |
OverlayProperty |
Identifica la proprietà di dipendenza Overlay. |
ProgressStateProperty |
Identifica la proprietà di dipendenza ProgressState. |
ProgressValueProperty |
Identifica la proprietà di dipendenza ProgressValue. |
ThumbButtonInfosProperty |
Identifica la proprietà di dipendenza ThumbButtonInfos. |
ThumbnailClipMarginProperty |
Identifica la proprietà di dipendenza ThumbnailClipMargin. |
Proprietà
CanFreeze |
Ottiene un valore che indica se l'oggetto può essere impostato come non modificabile. (Ereditato da Freezable) |
DependencyObjectType |
Ottiene l'oggetto DependencyObjectType che esegue il wrapping del tipo CLR di questa istanza. (Ereditato da DependencyObject) |
Description |
Ottiene o imposta il testo per la descrizione comandi dell'elemento della barra delle applicazioni. |
Dispatcher |
Ottiene l'oggetto Dispatcher associato a DispatcherObject. (Ereditato da DispatcherObject) |
IsFrozen |
Ottiene un valore che indica se l'oggetto è attualmente modificabile. (Ereditato da Freezable) |
IsSealed |
Ottiene un valore che indica se l'istanza è attualmente sealed (di sola lettura). (Ereditato da DependencyObject) |
Overlay |
Ottiene o imposta l'immagine visualizzata sull'icona del programma nel pulsante della barra delle applicazioni. |
ProgressState |
Ottiene o imposta un valore che indica il modo in cui viene visualizzato l'indicatore di stato nel pulsante della barra delle applicazioni. |
ProgressValue |
Ottiene o imposta un valore che indica il riempimento dell'indicatore di stato nel pulsante della barra delle applicazioni. |
ThumbButtonInfos |
Ottiene o imposta la raccolta di oggetti ThumbButtonInfo associato a Window. |
ThumbnailClipMargin |
Ottiene o imposta un valore che specifica la parte dell'area client della finestra dell'applicazione visualizzata nell'anteprima della barra delle applicazioni. |
Metodi
CheckAccess() |
Determina se il thread chiamante ha accesso a DispatcherObject. (Ereditato da DispatcherObject) |
ClearValue(DependencyProperty) |
Cancella il valore locale di una proprietà. La proprietà da cancellare è specificata da un identificatore DependencyProperty. (Ereditato da DependencyObject) |
ClearValue(DependencyPropertyKey) |
Cancella il valore locale di una proprietà di sola lettura. La proprietà da cancellare è specificata da un oggetto DependencyPropertyKey. (Ereditato da DependencyObject) |
Clone() |
Crea un clone modificabile dell'oggetto Freezable, eseguendo copie complete dei valori dell'oggetto. Durante la copia delle proprietà di dipendenza di questo oggetto, questo metodo copia le espressioni (che potrebbero non essere più risolte), ma non le animazioni né i relativi valori correnti. (Ereditato da Freezable) |
CloneCore(Freezable) |
Rende l'istanza un clone (copia completa) dell'oggetto Freezable specificato usando i valori di proprietà di base (non animati). (Ereditato da Freezable) |
CloneCurrentValue() |
Crea un clone modificabile (copia completa) di Freezable utilizzando i valori correnti. (Ereditato da Freezable) |
CloneCurrentValueCore(Freezable) |
Rende l'istanza un clone (copia completa) modificabile dell'oggetto Freezable specificato usando i valori di proprietà correnti. (Ereditato da Freezable) |
CoerceValue(DependencyProperty) |
Assegna forzatamente il valore della proprietà di dipendenza specificata. Questa operazione viene eseguita richiamando qualsiasi funzione CoerceValueCallback specificata nei metadati della proprietà di dipendenza esistente nell'oggetto DependencyObject chiamante. (Ereditato da DependencyObject) |
CreateInstance() |
Inizializza una nuova istanza della classe Freezable. (Ereditato da Freezable) |
CreateInstanceCore() |
Quando è implementato in una classe derivata, crea una nuova istanza della classe derivata Freezable. (Ereditato da Freezable) |
Equals(Object) |
Determina se l'oggetto DependencyObject specificato equivale all'oggetto DependencyObject corrente. (Ereditato da DependencyObject) |
Freeze() |
Rende non modificabile l'oggetto corrente e ne imposta la proprietà IsFrozen su |
FreezeCore(Boolean) |
Rende immodificabile l'oggetto Freezable o verifica se può essere reso immodificabile. (Ereditato da Freezable) |
GetAsFrozen() |
Crea una copia bloccata di Freezable, utilizzando valori delle proprietà di base (non-animati). Dato che la copia è bloccata, gli oggetti secondari bloccati sono copiati dal riferimento. (Ereditato da Freezable) |
GetAsFrozenCore(Freezable) |
Rende l'istanza un clone bloccato dell'oggetto Freezable specificato usando i valori di proprietà di base (non animati). (Ereditato da Freezable) |
GetCurrentValueAsFrozen() |
Crea una copia bloccata di Freezable utilizzando valori della proprietà correnti. Dato che la copia è bloccata, gli oggetti secondari bloccati sono copiati dal riferimento. (Ereditato da Freezable) |
GetCurrentValueAsFrozenCore(Freezable) |
Rende l'istanza corrente un clone bloccato dell'oggetto Freezable specificato. Se l'oggetto ha proprietà di dipendenza animate, i valori animati correnti vengono copiati. (Ereditato da Freezable) |
GetHashCode() |
Ottiene un codice hash per l'oggetto DependencyObject. (Ereditato da DependencyObject) |
GetLocalValueEnumerator() |
Crea un enumeratore specializzato per determinare le proprietà di dipendenza che presentano valori impostati localmente nell'oggetto DependencyObject. (Ereditato da DependencyObject) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
GetValue(DependencyProperty) |
Restituisce il valore effettivo corrente di una proprietà di dipendenza in questa istanza di DependencyObject. (Ereditato da DependencyObject) |
InvalidateProperty(DependencyProperty) |
Valuta di nuovo il valore effettivo della proprietà di dipendenza specificata. (Ereditato da DependencyObject) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnChanged() |
Chiamato quando viene modificato l'oggetto Freezable corrente. (Ereditato da Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Assicura che adatti puntatori del contesto siano stabiliti per un membro dati DependencyObjectType che è appena stato impostato. (Ereditato da Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Questo membro supporta l'infrastruttura Windows Presentation Foundation (WPF) e non deve essere usato direttamente dal codice. (Ereditato da Freezable) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Esegue l'override dell'implementazione di DependencyObject di OnPropertyChanged(DependencyPropertyChangedEventArgs) per richiamare anche eventuali gestori Changed in risposta alla modifica di una proprietà di dipendenza di tipo Freezable. (Ereditato da Freezable) |
ReadLocalValue(DependencyProperty) |
Restituisce il valore locale di una proprietà di dipendenza, se esistente. (Ereditato da DependencyObject) |
ReadPreamble() |
Assicura che l’accesso di Freezable sia stato eseguito da un thread valido. Gli eredi di Freezable devono chiamare questo metodo all'inizio di qualsiasi API che legge i membri dei dati che non sono proprietà della dipendenza. (Ereditato da Freezable) |
SetCurrentValue(DependencyProperty, Object) |
Imposta il valore di una proprietà di dipendenza senza modificare l'origine del valore. (Ereditato da DependencyObject) |
SetValue(DependencyProperty, Object) |
Imposta il valore locale di una proprietà di dipendenza, specificato dal relativo identificatore della proprietà di dipendenza. (Ereditato da DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
Imposta il valore locale di una proprietà di dipendenza di sola lettura, specificato dall'identificatore DependencyPropertyKey della proprietà di dipendenza. (Ereditato da DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
Restituisce un valore che indica se i processi di serializzazione devono serializzare il valore della proprietà di dipendenza specificata. (Ereditato da DependencyObject) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
VerifyAccess() |
Impone che il thread chiamante abbia accesso a DispatcherObject. (Ereditato da DispatcherObject) |
WritePostscript() |
Genera l'evento Changed per Freezable e richiama il metodo OnChanged(). Le classi che derivano da Freezable devono chiamare questo metodo alla fine di qualsiasi API che modifica i membri di classe che non sono archiviati come proprietà di dipendenza. (Ereditato da Freezable) |
WritePreamble() |
Verifica che l'oggetto Freezable non sia bloccato e che l'accesso sia eseguito da un contesto di threading valido. Gli eredi di Freezable devono chiamare questo metodo all'inizio di qualsiasi API che scrive sui membri dei dati che non sono proprietà della dipendenza. (Ereditato da Freezable) |
Eventi
Changed |
Si verifica quando Freezable o un oggetto che contiene è modificato. (Ereditato da Freezable) |