Tag: 自定义渲染器

Xamarin – 带有绝对布局的文本和图像的button导致错误alignment的元素

我正在尝试在Xamarin Forms跨平台的应用程序(iOS和Android)中创build一个button,其中button同时具有文本和图像。 XAML非常简单: <AbsoluteLayout …> <Labels and backgrounds and such> <Button x:Name="HomeButton2" TranslationX="6" TranslationY="100" BackgroundColor="#efeff4" TextColor="#4a4a4a" WidthRequest="58" HeightRequest="76" ContentLayout="Top,5" Image="TaskBar_Assets_HomeButtonIcon.png" Text="Home" Clicked="HomeButton_Clicked" /> </AbsoluteLayout> 但是我在iPad上得到的是一个button,图像和文本都被奇怪地推到了一边: (源图像“TaskBar_Assets_HomeButtonIcon.png”是47 x 44,所以它应该适合在整个button区域罚款) 我可以find使这看起来更好的唯一方法是制作一个基于Button的自定义控件,然后我可以看到底层的UIButton的几个属性看起来不可思议: Control.ImageView.Frame是全零: Control.ImageView = <UIImageView: 0x12df52940; frame = (0 0; 0 0); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x173623180>> Control.ImageEdgeInsets和.TitleEdgeInsets看起来很奇怪(右边+左边看起来好像没有为图像或文本留下空间): Control.ImageEdgeInsets […]

Xamarin表单:IOS中的进度条高度问题

我已经创build了一个应用程序使用XamarinformsPCL项目,将在Android,IOS,Windows 10和Windows 8.1上运行。 在这里我使用了一个progresbar控件,为了增加它的高度,我做了自定义的渲染器。 在PCL- using Xamarin.Forms; namespace MyProject.ViewModels { public class CustomProgressbar : ProgressBar { } } 在IOS- using CoreGraphics; using MyProject.iOS; using Xamarin.Forms; using Xamarin.Forms.Platform.iOS; using FISE.ViewModels; [assembly: ExportRenderer(typeof(CustomProgressbar), typeof(CustomProgressBarRenderer))] namespace MyProject.iOS { public class CustomProgressBarRenderer : ProgressBarRenderer { protected override void OnElementChanged(ElementChangedEventArgs<ProgressBar> e) { base.OnElementChanged(e); Control.ProgressTintColor = Color.FromHex(Constant.Primarycolor).ToUIColor(); Control.TrackTintColor = Color.FromHex(Constant.Secondary1Color).ToUIColor(); } […]

Xamarin窗体 – 如何使iOS ListView本机分组样式与头?

我已经在Xamarian窗体中创build了一个使用MVVM和绑定的列表视图来创build一个分组列表。我希望列表视图具有适用于iOS的UITableView样式组。 我试图通过我在网上find的自定义渲染器来创build这个,但是结果看起来不对,因为一切都是灰色的。 首先,我们将从图像开始。 这就是我想要的表格看起来像我从原生的iOS版本拿来的: 当我添加自定义渲染器时,我得到以下Xamarin表单版本: 我玩弄背景颜色,试图使它们透明,我发现,当我做了listview背景颜色=“透明”,原来的列表视图下。 显示在以下两张图片中。 xaml页面如下所示: <StackLayout Spacing="0"> <SearchBar x:Name="SearchBarControl" Text="{Binding SearchText}" SearchCommand="{Binding SearchCommand}" Placeholder="Search"></SearchBar> <ListView x:Name="HistoryList" IsGroupingEnabled="True" GroupDisplayBinding="{Binding Title}" ItemsSource="{Binding History}" CachingStrategy="RecycleElement"> <ListView.ItemTemplate> <DataTemplate> <TextCell Text="{Binding TagContent}" Detail="{Binding DateAndTime}" /> </DataTemplate> </ListView.ItemTemplate> </ListView> </StackLayout> 我相信自定义渲染器应该将其分组: [assembly: ExportRenderer(typeof(ListView), typeof(iOSListViewCustomRenderer))] namespace Test.iOS.CustomRenderer { public class iOSListViewCustomRenderer : ListViewRenderer { protected override void OnElementChanged(ElementChangedEventArgs<ListView> e) […]