如何通过Button.ImageSource属性使用Visual State Manager

时间:2019-08-10 20:19:22

标签: xaml xamarin xamarin.forms

我试图像本教程一样设置一个切换按钮:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/button#creating-a-toggle-button

但是,我的按钮内部有一个字体图标。带有字体本身的按钮可以正常工作。问题是当我尝试从可视状态管理器设置ImageSource属性时。

代码如下:

<FontImageSource x:Key="fileImageSource" Glyph="&#xF0E6;"
  Color="Gray"
  FontFamily="{ DynamicResource MaterialIconsFontFamily }"
  Size="28" />

<Button Margin="20,10,20,0" 
    Text="Email Disabled (click to enable)" 
    FontFamily="{ DynamicResource MaterialIconsFontFamily }"
    Style="{StaticResource PaynuverDisabledButtonStyle}"
    ImageSource="{StaticResource fileImageSource}">
</Button>

<local:ToggleButton Toggled="OnBoldButtonToggled"
   Margin="20,10,20,0"
   FontFamily="{ DynamicResource MaterialIconsFontFamily }">
   <VisualStateManager.VisualStateGroups>
    <VisualStateGroup Name="ToggleStates">
        <VisualState Name="ToggledOff">
            <VisualState.Setters>
                <Setter Property="Text" Value="Email Disabled (click to enable)" />
                <Setter Property="Style" Value="{StaticResource DisabledButtonStyle}" />
                <Setter Property="ImageSource" Value="{StaticResource fileImageSource}" />
            </VisualState.Setters>
        </VisualState>

        <VisualState Name="ToggledOn">
            <VisualState.Setters>
                <Setter Property="Text" Value="Email Enabled" />
                <Setter Property="Style" Value="{StaticResource ButtonStyle}" />
            </VisualState.Setters>
        </VisualState>
      </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
</local:ToggleButton>

使用以下代码,我得到一个错误:“ ToggleButton.ImageSourceProperty的PropertyName不是ImageSource”

1 个答案:

答案 0 :(得分:1)

据我了解,您正在尝试创建自定义控件“ ToggleButton”。

ToggleButton.ImageSourceProperty的PropertyName不是ImageSource

此消息警告您有关可绑定属性缺失或属性调用中的简单错误。

顺便说一句,您尝试使用Switch control吗?