如何从xamarin表单中删除开关中的开/关文本

时间:2018-01-03 11:48:11

标签: c# xamarin uwp

如何从开关

中删除开/关文本
<Label Text="Below is the binded data: "></Label>
<Label Text="{Binding MyData}"></Label>
<Label x:Name="lbldisp"></Label>
<Switch Toggled="SwitchToggled"></Switch>

3 个答案:

答案 0 :(得分:6)

  

如何从开关

中删除开/关文本

与UWP中Switch对应的原生控件为ToggleSwitch。如果您要删除on/off内容,则可以直接在ToggleSwitch项目中创建没有文字样式的UWP,如下所示:

<强>的App.xaml

<Application.Resources>
    <Style TargetType="ToggleSwitch">
        <Setter Property="OffContent" Value=" " />
        <Setter Property="OnContent" Value=" " />
        <Setter Property="Margin" Value="0,0,-110,0" /> 
    </Style>
</Application.Resources>

![enter image description here

答案 1 :(得分:1)

我使用了一个效果来解决这个问题。

在你的UWP项目中;

using Windows.UI.Xaml.Controls;
using Xamarin.Forms;
using Xamarin.Forms.Platform.UWP;

[assembly: ResolutionGroupName("YOURAPP")]
[assembly: ExportEffect(typeof(YOURAPP.UWP.Effects.SwitchEffect), nameof(YOURAPP.UWP.Effects.SwitchEffect))]
namespace YOURAPP.UWP.Effects
{
    public class SwitchEffect : PlatformEffect
    {
        protected override void OnAttached()
        {
            if (Control is ToggleSwitch switchControl)
            {
                switchControl.OffContent = string.Empty;
                switchControl.OnContent = string.Empty;
            }
        }

        protected override void OnDetached()
        { }
    }
}

在您的Forms项目中:

using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace YOURAPP.Effects
{
    [XamlCompilation(XamlCompilationOptions.Compile)]
    public class SwitchEffect : RoutingEffect
    {
        public SwitchEffect() : base("YOURAPP.SwitchEffect") { }
    }
}

在你的XAML中: 添加命名空间:

xmlns:effects="clr-namespace:YOURAPP.Effects;assembly=YOURAPP"

<Switch>
    <Switch.Effects>
        <effects:SwitchEffect />
    </Switch.Effects>
</Switch>

答案 2 :(得分:0)

最简单的方法来执行特定的开关,而不是更改整个UWP应用的拨动开关

<ToggleSwitch x:Name="xyz" OnContent="" OffContent="">
</ToggleSwitch>