Флажки не отображаются в режиме релиза UWP (Xamarin Forms)
Я совершенно новичок в xamarin.forms.
Я использовал библиотеку XLabs для добавления флажков в своем проекте PCL (Xamarin Forms).
Когда я запускаю приложение UWP ARM в режиме отладки, ошибки не возникает, но когда я запускаю приложение в режиме выпуска, флажки никогда не отображаются.
Есть ли какие-либо настройки, которые мне нужно настроить?
1 ответ
Как сказал @hugo, библиотека XLabs больше не поддерживается. Может не работать с более новыми версиями Xamarin.Forms. По вашему требованию вы можете использовать Switch
установите флажок для замены флажка или используйте пользовательский флажок. В следующем коде реализован простой флажок. Для получения дополнительной информации обратитесь к разделу "Введение в пользовательские средства визуализации".
CustomCheckBox.cs
public class CustomCheckBox : View
{
public static readonly BindableProperty CheckedProperty =
BindableProperty.Create("Checked", typeof(bool), typeof(CustomCheckBox), default(bool));
public bool Checked
{
get { return (bool)GetValue(CheckedProperty); }
set { SetValue(CheckedProperty, value); }
}
}
CustomCheckBoxRenderer.cs
[assembly: ExportRenderer(typeof(CustomCheckBox), typeof(CustomCheckBoxRenderer))]
namespace LabsTest.UWP
{
public class CustomCheckBoxRenderer : ViewRenderer<CustomCheckBox, Windows.UI.Xaml.Controls.CheckBox>
{
protected override void OnElementChanged(ElementChangedEventArgs<CustomCheckBox> e)
{
base.OnElementChanged(e);
if (Control == null)
{
SetNativeControl(new Windows.UI.Xaml.Controls.CheckBox());
}
if (Control != null)
{
Control.IsChecked = Element.Checked;
}
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName == nameof(Element.Checked))
{
UpdateStatus();
}
}
private void UpdateStatus()
{
Control.IsChecked = Element.Checked;
}
}
}
использование
<StackLayout HorizontalOptions="Center" VerticalOptions="Center">
<local:CustomCheckBox x:Name="MyCheckBox" Checked="True">
</local:CustomCheckBox>
</StackLayout>