Xamarin 表单四舍五入 SearchHandler
Posted
技术标签:
【中文标题】Xamarin 表单四舍五入 SearchHandler【英文标题】:Xamarin Forms Rounded SearchHandler 【发布时间】:2020-02-24 13:42:21 【问题描述】:我正在 Xamarin Forms 中测试新的 Shell 页面。 我想知道搜索处理程序是否可以个性化,例如在搜索角上应用圆形效果。 我试图重新定义 SearchHandler 的模板,但它只是改变了 Search Handler 的结果请求的外观(如何向用户显示建议)。 非常感谢您的帮助!
【问题讨论】:
请发布您目前尝试过的最少代码 sn-p。 问题是:有可能吗?因此,如果您可以开始回答这个问题:) 我无法与您分享 sn-p 因为我不知道如何开始。我已经尝试过:效果(不在 SearchHandler 上启动)我也尝试过 Shell Renderer(我认为我可以走得更远,也许是最好的方法?)。 【参考方案1】:经过几次测试我回来了。
我找到了一种简单的方法。
Shell App的Top Navigation Bar,有一个“Shell.TitleView”标签。
您可以在此标签内定义个性化模板。 所以我删除了“SearchHandler”并在“Shell.TitleView”内部实现了一个带有圆角的自定义搜索栏。 它工作得很好。 如果需要,我可以给你样品。
如果您知道另一种方法,我将很乐意对其进行测试。
谢谢
【讨论】:
你能举个例子吗?【参考方案2】:如果在 Shell Application 中使用SearchHandler
,我认为不可能实现圆角SearchHandler
。
首先,关于SearchHandler appearance,没有办法改变它的回合:
BackgroundColor
,颜色类型,是搜索框文本的背景颜色。
CancelButtonColor
,颜色类型,是取消按钮的颜色。
CharacterSpacing
,double 类型,是 SearchHandler 文本的字符间距。
FontAttributes
,FontAttributes 类型,指示搜索框文本是斜体还是粗体。
FontFamily
,字符串类型,是用于搜索框文本的字体系列。
FontSize
,double 类型,是搜索框文本的大小。
HorizontalTextAlignment
,TextAlignment 类型,是搜索框文本的水平对齐方式。
PlaceholderColor
,颜色类型,是占位符搜索框文本的颜色。
TextColor
,颜色类型,是搜索框文本的颜色。
VerticalTextAlignment
,TextAlignment 类型,是搜索框文本的垂直对齐方式。
第二,如果使用Shell Custom Renderers在NavigationController
中也找不到SearchBar
。
例如在 ios shell 渲染器中:
public class CustomNavBarAppearanceTracker : IShellNavBarAppearanceTracker
public void Dispose()
//throw new NotImplementedException();
public void ResetAppearance(UINavigationController controller)
//throw new NotImplementedException();
public void SetAppearance(UINavigationController controller, ShellAppearance appearance)
//throw new NotImplementedException();
//var seabar = controller.SearchDisplayController.SearchBar;
controller.NavigationBar.BackgroundColor = UIColor.Red;
Console.WriteLine("-----"+controller.NavigationItem.SearchController.SearchBar);
public void UpdateLayout(UINavigationController controller)
//throw new NotImplementedException();
输出是:controller.NavigationItem.SearchController.SearchBar = null
如果不使用SearchHandler
,可以尝试使用Custom SearchBar Renderer来实现。
【讨论】:
感谢您的回答 :) 是的,我已经检查了搜索处理程序外观中是否存在角半径属性。因此,要得出结论,如果我想修改角半径,我不必使用搜索处理程序,而是实现自定义搜索处理程序。对于搜索栏,不需要自定义渲染器,我可以用 Frame 包装它并将角半径应用于 Frame。 @lalilulelo 是的,这也是实现它的好点。如果可行,您可以在这里分享解决方案。 @lalilulelo 很高兴看到解决方案,这是实施它的好方法!以上是关于Xamarin 表单四舍五入 SearchHandler的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin 和 Xamarin 表单的符号包(PDB 文件)