【发布时间】:2017-07-28 13:42:03
【问题描述】:
在 Xamarin.Forms 中,通常我会使用“ButtonExt”之类的类名称为按钮编写自定义渲染器。是否可以使用元素的原始名称(我猜是覆盖)编写自定义渲染器,例如“Button”?
基本上,我希望能够为我的应用程序中的所有按钮添加水平填充,但不必将所有 Buttons 重命名为 ButtonExt(Xamarin.Forms 中的按钮没有 Padding 属性)。换句话说,我希望能够说 new Button { Padding = 20 } 而不必说 new ButtonExt { Padding = 20 }(项目是 C#,而不是 XAML)。
通常,在 iOS 项目中,我会:
[assembly: ExportRenderer(typeof(ButtonExt), typeof(ButtonExtRenderer))]
namespace StoreFulfillment.iOS
{
public class ButtonExtRenderer : ButtonRenderer
在共享项目中,我有:
using MySharedProject;
using Xamarin.Forms;
namespace MySharedProject.Renderers
{
public class ButtonExt : Button
{
...
然后我会说new ButtonExt { Padding = 20 }。但是为了能写new Button { Padding = 20 },我不能写public class Button : Button……那我该怎么做呢?
【问题讨论】:
-
@hvaughan3 - 刚刚扩展了我的问题 - 你能解决更新问题吗?
-
想知道扩展方法是否是答案 - docs.microsoft.com/en-us/dotnet/csharp/programming-guide/…
标签: xamarin xamarin.ios xamarin.forms custom-renderer