【问题标题】:Creating Xamarin Forms control from existing controls从现有控件创建 Xamarin Forms 控件
【发布时间】:2015-04-28 14:09:29
【问题描述】:

在 Xamarin Forms 中有一个 TimePicker 控件。我可以从我的 xaml 代码中实例化控件并将 Time 属性绑定到我的视图模型上的一个属性。

我想创建一个类似的控件来选择星期几(“星期一”、“星期二”等)。我们称之为DaysOfWeekPickerDaysOfWeekPicker 应该允许用户选择零天、一天或多天(最多 7 天)。这与标准 Picker 不同,后者只允许选择一个项目。

我找到了解释如何使用为每个平台定义的本机渲染器创建自定义控件的教程。但是,作为第一步,我很乐意仅使用 Xamarin 表单中已经存在的其他控件(例如按钮和标签)来实现 DaysOfWeekPicker。有没有一种方法可以在不为每个平台创建新渲染器的情况下做到这一点?

【问题讨论】:

    标签: c# xaml xamarin controls xamarin.forms


    【解决方案1】:

    您可以通过在项目中添加 ContentView 来实现此目的

    你的 ContentView 可以有一个 XAML 文件,你可以用它来定义它的外观,或者你可以在后面的代码中这样做

    查看Bindable Properties(尤其是关于属性更改事件)和Behaviors 并研究它们的工作原理。您可能需要编写一些代码来定义您的控件如何工作、移动、响应、验证等。

    【讨论】:

    • 感谢您的回答。我只是尝试过这个,但它并没有完全按照我的意愿行事。它在我放置<DaysOfWeekPicker> 元素的主视图中显示了所有的日子。有什么方法可以让它更像TimePicker,只有在按下时才会弹出选择对话框?
    • 所以...是的,所有这些都是可能的,您需要自己实现它。看看 BindableProperty:您可以在新的 ContentView 上创建一个 bool 属性,指示它是展开还是折叠,挂钩属性更改处理程序并根据需要更改控件的外观
    • 我将阅读 Bindable 属性和行为。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 2019-04-16
    相关资源
    最近更新 更多