Wie erstelle ich Markup-Erweiterungen mit bindbaren Eigenschaften?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie erstelle ich Markup-Erweiterungen mit bindbaren Eigenschaften?

Post by Anonymous »

Ich möchte eine Markup-Erweiterung namens RgbColorExtension haben, bei der die Eigenschaft R bindbar ist, damit ich ihren Wert mit einem Schieberegler anpassen kann.
Der folgende Versuch funktioniert nicht. Das Ändern des Schiebereglers hat keine Auswirkungen auf die R-Eigenschaft.

Code: Select all













Code: Select all

namespace Sandbox;

public class RgbColorExtension : BindableObject, IMarkupExtension
{
public static readonly BindableProperty RProperty =
BindableProperty.Create(nameof(R), typeof(float), typeof(RgbColorExtension), 0.5f);

public float R
{
get => (float)GetValue(RProperty);
set => SetValue(RProperty, value);
}

public float G { get; set; }
public float B { get; set; }
public float A { get; set; }

public Color ProvideValue(IServiceProvider serviceProvider)
{
return Color.FromRgba(R, G, B, A);
}

object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
{
return (this as IMarkupExtension).ProvideValue(serviceProvider);
}
}
Was übersehe ich hier?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post