ab. Ich verwende Xamarin Forms BoxView-Steuerelement und möchte die Kanten in Windows Phone 8.1 abrunden (kein Silverlight). Dafür rendere ich das Steuerelement in meinem Windows Phone Projekt und setze den Radius aber es scheint nichts zu tun. Unten ist der Code rendert Ich verwende:So runden Sie Rechteckkanten für ein Windows 8.1 (kein Silverlight) -Telefon mit Xamarin-Formularen
[assembly: ExportRenderer(typeof(RoundedBox), typeof(RoundedBoxRenderer))]
namespace MyProject.WinPhone.Renderer
{
public class RoundedBoxRenderer : BoxViewRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<BoxView> e)
{
base.OnElementChanged(e);
var boxRenderer = e.NewElement;
RoundedBox rb = (RoundedBox)this.Element;
if (this.Control != null)
{
var boxStyle = new Style(typeof(RoundedBox))
{
Setters = {
new Setter {Property = RoundedBox.BackgroundColorProperty, Value = rb.BackgroundColor}
}
};
SetRoundedBoxRadius();
boxRenderer.Style = boxStyle;
}
}
private void SetRoundedBoxRadius(double radius)
{
((Windows.UI.Xaml.Shapes.Rectangle)this.Control).RadiusX = 50;
}
}
}
RoundedBox ist die Steuerung ich in meinem PCL-Projekt erzeugt, die von BoxView erbt
Aus meinen Erkenntnissen sehe ich nicht, was im falsch zu machen da Xamarin wandelt die BoxView in eine Vierecksform in Windows-Telefone nach:
https://developer.xamarin.com/guides/xamarin-forms/custom-renderer/renderers/
Und das shap e hat die Eigenschaft RadiusX und RadiusY die Grenzen Radius festlegen:
https://msdn.microsoft.com/library/windows/apps/br243371
Irgendwelche Ideen, was ich bin fehlt? Vielen Dank!
Ich bin mit dem gleichen Problem konfrontiert :( – seba47
In Windows verwenden Sie die 'CornerRadius' Eigenschaft abgerundete Ecken machen das Problem mit einem Rechteck ist.' CornerRadius' nicht zugänglich ist, so dass ich glaube nicht, von "BoxViewRenderer" zu vererben ist nicht die beste Idee. Ich sehe, dass 'Frame' 'Border' in Windows implementiert, die' CornerRadius' freigibt, die funktionieren könnte. – Barnstokkr