【问题标题】:Xamarin.Forms, Create clickable Frame (background)Xamarin.Forms,创建可点击的框架(背景)
【发布时间】:2017-04-19 04:38:34
【问题描述】:

由于 Button 仅限于在 Xamarin.Forms 中使用其中的图像并且 StackLayout 不支持 CornerRadius 属性,我们决定使用 Frame 代替它们,实现了 Tapped 事件但问题是点击后背景不会改变。 那么如何为框架创建和设置可点击的背景呢?

【问题讨论】:

    标签: c# xaml xamarin.forms frame


    【解决方案1】:

    AFAIK 您无法处理 xamarin 表单中的视觉状态。但是您可以执行以下代码来使用自定义渲染器实现状态转换。

    public class CustomFrameRenderer : Xamarin.Forms.Platform.Android.AppCompat.FrameRenderer
    {
        private Color backgroundColor;
    
        protected override void OnElementChanged(ElementChangedEventArgs<Frame> e)
        {
            base.OnElementChanged(e);
            backgroundColor = Element.BackgroundColor;
            Control.Touch += Control_Touch;
        }
    
        private void Control_Touch(object sender, TouchEventArgs e)
        {
            switch (e.Event.Action)
            {
                case MotionEventActions.Down:
                    Element.BackgroundColor = Color.Green;
                    break;
                case MotionEventActions.Up:
                    Element.BackgroundColor = backgroundColor;
                    break;
            }
        }
    }
    

    注意:上面的代码会影响所有的框架,所以更好的子类化并创建一个新的框架以避免整个应用程序中的背景颜色过渡。

    【讨论】:

    • 那里的控制是什么?框架没有实现任何控制?
    • 控件是卡片视图(Xamarin.forms 框架元素的本机元素)
    猜你喜欢
    • 2013-07-07
    • 2020-06-02
    • 2023-04-09
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    相关资源
    最近更新 更多