Ich arbeite an einer Xamarin.Forms Mobile App. In der UWP-Version, wenn ich über eine Schaltfläche bewegen, ein ~ 2px grauer Rand erscheint:Xamarin UWP - Wie loswerden von Grenze, die erscheint, wenn der Mauszeiger über den Button
Das Problem ist: Wenn nicht schwebt, geht die Grenze entfernt, dass die Menge an Raum verläßt jetzt leer (oder Vielleicht wird die Umrandung transparent), so dass die Schaltfläche nicht mehr mit den darüber liegenden Elementen übereinstimmt.
Wie entferne ich diese Grenze (wenn ich schwebe und nicht schwebe)?
Ich bin mit einem benutzerdefinierten Renderer (ButtonExt : Button
) und in den Standard-Stilen in der PCL, ich bin die BorderWidthProperty zu new Thickness(0)
von Standardeinstellung, sowie in dem behinderten und fokussierten Zustand, wie dies (Weglassen andere Stileigenschaften für Klarheit):
public static Style ButtonStyle => new Style(typeof(ButtonExt))
{
Setters =
{
new Setter {Property = ButtonExt.BorderWidthProperty, Value = new Thickness(0)}
},
Triggers =
{
// Disabled button
new Trigger(typeof(ButtonExt))
{
Property = VisualElement.IsEnabledProperty,
Value = false,
Setters =
{
new Setter {Property = ButtonExt.BorderWidthProperty, Value = new Thickness(0)}
}
},
new Trigger(typeof(ButtonExt))
{
Property = VisualElement.IsFocusedProperty,
Value = true,
Setters =
{
new Setter {Property = ButtonExt.BorderWidthProperty, Value = new Thickness(0)}
}
}
}
};
Aber das hat keinen Effekt. Das einzige, was funktioniert, ist, wenn ich die native Kontrollrandstärke explizit auf 0 - Control.BorderThickness = new Thickness(0);
einstelle. Aber das ist ein bisschen hacky. Im Idealfall gibt es eine Möglichkeit, diese Grenze durch Stile zu entfernen.
Bitte ersetzen Sie Ihr Bild durch Inline-Code. –
Wie stellen Sie sicher, dass dieser Stil Ihrer Schaltfläche zugewiesen ist? – Ada
@ G.Sharada - Ich füge es zu einem ResourceDictionary hinzu, indem ich 'public static ResourceDictionary StyleDictionary {get; } = new ResourceDictionary(); 'und dann' StyleDictionary.Add (ButtonStyle); 'sagen und dann schließlich' Application.Resources = StyleDictionary; 'Alle meine anderen Standardstile werden auf diese Weise hinzugefügt und funktionieren. – jbyrd