DrawingAttributes.PropertyDataChanged Gebeurtenis
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Treedt op wanneer eigenschapsgegevens worden toegevoegd of verwijderd uit de StrokeCollection.
public:
event System::Windows::Ink::PropertyDataChangedEventHandler ^ PropertyDataChanged;
public event System.Windows.Ink.PropertyDataChangedEventHandler PropertyDataChanged;
member this.PropertyDataChanged : System.Windows.Ink.PropertyDataChangedEventHandler
Public Custom Event PropertyDataChanged As PropertyDataChangedEventHandler
Public Event PropertyDataChanged As PropertyDataChangedEventHandler
Gebeurtenistype
Voorbeelden
Het volgende voorbeeld maakt deel uit van een aangepaste lijn die een driedimensionaal effect kan tekenen. Met de pennenstreek wordt een aangepaste eigenschap gedefinieerd en opgeslagen Shadoweddie deel uitmaakt van DrawingAttributes. Wanneer de Shadowed eigenschap wordt gewijzigd, roept de PropertyDataChanged gebeurtenishandler de OnInvalidated methode aan, waardoor de pennenstreek opnieuw wordt getekend.
class ShadowedStroke : Stroke
{
// Be sure to pass in the DrawingAttributes when you create the stroke to
// subscribe to the PropertyDataChaned event.
public ShadowedStroke(StylusPointCollection stylusPoints, DrawingAttributes drawingAttributes)
: base(stylusPoints, drawingAttributes)
{
this.DrawingAttributes.PropertyDataChanged += new PropertyDataChangedEventHandler(DrawingAttributes_PropertyDataChanged);
}
Guid shadow = new Guid("12345678-9012-3456-7890-123456789012");
public bool Shadowed
{
// Return the value of the custom property, shadow.
// If there is no custom property, return false.
get
{
if (!this.DrawingAttributes.ContainsPropertyData(shadow))
{
return false;
}
object propertyData = this.DrawingAttributes.GetPropertyData(shadow);
if (propertyData is bool)
{
return (bool)propertyData;
}
else
{
return false;
}
}
// Set the value of the custom property.
set
{
this.DrawingAttributes.AddPropertyData(shadow, value);
}
}
void DrawingAttributes_PropertyDataChanged(object sender, PropertyDataChangedEventArgs e)
{
this.OnInvalidated(new EventArgs());
}
protected override void DrawCore(System.Windows.Media.DrawingContext context, DrawingAttributes overrides)
{
// create a drop shadow
//
if (this.Shadowed)
{
Geometry pathGeometry = this.GetGeometry(overrides).Clone();
pathGeometry.Transform = new TranslateTransform(5, 0);
try
{
context.PushOpacity(0.5);
context.DrawGeometry(Brushes.DarkGray, null, pathGeometry);
}
finally
{
context.Pop();
}
}
base.DrawCore(context, overrides);
}
}
Class ShadowedStroke
Inherits Stroke
Private shadow As New Guid("12345678-9012-3456-7890-123456789012")
Public Sub New(ByVal stylusPoints As StylusPointCollection, ByVal drawingAttributes As DrawingAttributes)
MyBase.New(stylusPoints, drawingAttributes)
AddHandler Me.DrawingAttributes.PropertyDataChanged, AddressOf DrawingAttributes_PropertyDataChanged
End Sub
Public Property Shadowed() As Boolean
' Return the value of the custom property, shadow.
' If there is no custom property, return false.
Get
If Not Me.DrawingAttributes.ContainsPropertyData(shadow) Then
Return False
End If
Dim propertyData As Object = Me.DrawingAttributes.GetPropertyData(shadow)
If TypeOf propertyData Is Boolean Then
Return CType(propertyData, Boolean)
Else
Return False
End If
End Get
' Set the value of the custom property.
Set
Me.DrawingAttributes.AddPropertyData(shadow, value)
End Set
End Property
Private Sub DrawingAttributes_PropertyDataChanged(ByVal sender As Object, ByVal e As PropertyDataChangedEventArgs)
Me.OnInvalidated(New EventArgs())
End Sub
Protected Overrides Sub DrawCore(ByVal context As System.Windows.Media.DrawingContext, _
ByVal overriddenAttributes As DrawingAttributes)
' create a drop shadow
'
If Me.Shadowed Then
Dim pathGeometry As Geometry = Me.GetGeometry(overriddenAttributes).Clone()
pathGeometry.Transform = New TranslateTransform(5, 0)
Try
context.PushOpacity(0.5)
context.DrawGeometry(Brushes.DarkGray, Nothing, pathGeometry)
Finally
context.Pop()
End Try
End If
MyBase.DrawCore(context, overriddenAttributes)
End Sub
End Class