Xamarin Forms WinRT 条目自定义渲染器
Xamarin Forms WinRT Entry Custom Renderer
我试图让条目 select 在获得焦点时成为所有文本。我有一个自定义渲染器可以在 Android 上执行此操作,但我希望它也能在 Windows 8 上运行。如何在 Xamarin Forms 中为 Windows 创建自定义渲染?这是我拥有的:
[assembly: ExportRenderer(typeof(Xamarin.Forms.Entry), typeof(DrivingLog.Windows.MyEntryRenderer))]
namespace DrivingLog.Windows{
public class MyEntryRenderer : EntryRenderer {
protected override void OnElementChanged(ElementChangedEventArgs e) {
base.OnElementChanged(e);
if (e.OldElement == null) {
var nativeEditText = (global::Windows.UI.Xaml.Controls.TextBox)Control;
nativeEditText.ManipulationStarted += (object sender, ManipulationStartedRoutedEventArgs args) => {
nativeEditText.SelectAll();
};
}
}
}
}
我发现了问题,渲染器 class 在主 Page.xaml.cs 文件中。它需要位于没有 xaml 关联的文件中,才能将程序集标记识别为 Xamarin Forms 2.0
我试图让条目 select 在获得焦点时成为所有文本。我有一个自定义渲染器可以在 Android 上执行此操作,但我希望它也能在 Windows 8 上运行。如何在 Xamarin Forms 中为 Windows 创建自定义渲染?这是我拥有的:
[assembly: ExportRenderer(typeof(Xamarin.Forms.Entry), typeof(DrivingLog.Windows.MyEntryRenderer))] namespace DrivingLog.Windows{ public class MyEntryRenderer : EntryRenderer { protected override void OnElementChanged(ElementChangedEventArgs e) { base.OnElementChanged(e); if (e.OldElement == null) { var nativeEditText = (global::Windows.UI.Xaml.Controls.TextBox)Control; nativeEditText.ManipulationStarted += (object sender, ManipulationStartedRoutedEventArgs args) => { nativeEditText.SelectAll(); }; } } } }
我发现了问题,渲染器 class 在主 Page.xaml.cs 文件中。它需要位于没有 xaml 关联的文件中,才能将程序集标记识别为 Xamarin Forms 2.0