问题标签 [custom-renderer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2781 浏览

c# - 在代码中设置禁用按钮的前景色(UWP)

我正在为提交按钮编写自定义渲染器,以便为我的Xamarin.Forms应用程序提供统一的样式。我在设置 Windows (UWP) 端禁用按钮的前景(文本)颜色时遇到问题。

更改活动按钮的颜色非常简单

Control.Foreground = new SolidColorBrush(Windows.UI.Colors.Green);

但是试图弄清楚如何为禁用的按钮设置前景色让我陷入了困境。

我希望能够在不必使用 XAML (如这种方法)的情况下进行设置,因为我计划稍后提取这些渲染器。

0 投票
1 回答
954 浏览

xamarin.forms - 渐变作为 Xamarin.Forms 中网格的背景

我正在尝试在网格上使用渐变画笔作为背景。到目前为止,我只为 UWP 创建了一个自定义渲染器,但我无法让它工作。

e.NewElement.BackgroundColor 需要一个颜色,但我有一个 LinearGradientBrush。那么甚至可以将网格背景设置为渐变色吗?

谢谢

我的渲染器代码如下:

0 投票
1 回答
2281 浏览

xamarin - xamarin 渲染器无效转换

为了能够创建需要在 Xamarin 环境中本地完成的样式,我使用了自定义渲染器。在 android 端,我收到一个System.InvalidCastException,我不知道如何解决这个问题。我目前正在包装一个Android.Widget.StackView由于这个家伙对我之前遇到的错误的建议(没有默认构造函数采用 0 参数错误)。该错误似乎不是由于声明或实例化而发生的,而是当我将其添加到 ContentView 并在返回时发生(通过注释掉如下所示的行来找到)。

代码

渲染视图

RendererViewAndroid

错误堆栈跟踪

System.InvalidCastException:指定的强制转换无效。在 (wrapper castclass) System.Object:__castclass_with_cache (object,intptr,intptr) 在 Xamarin.Forms.Registrar1[TRegistrable].GetHandler (System.Type type) [0x0001b] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Registrar.cs:24 at Xamarin.Forms.Registrar1[TRegistrable].GetHandler[TOut](System.Type 类型)[0x00000] 在 C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Registrar.cs:29 在 Xamarin.Forms.Platform.Android.Platform。 CreateRenderer (Xamarin.Forms.VisualElement 元素) [0x00006] 在 C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\Platform.cs:281 在 Xamarin.Forms.Platform.Android.VisualElementPackager.AddChild (Xamarin. Forms.VisualElement 视图,IVisualElementRenderer oldRenderer,Xamarin.Forms.Platform.Android.RendererPool 池,布尔值 sameChildren) [0x00023] 在 C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\VisualElementPackager.cs:72 在 Xamarin .Forms.Platform.Android.VisualElementPackager.SetElement (Xamarin.Forms.VisualElement oldElement, Xamarin.Forms.VisualElement newElement) [0x00104] 在 C 中:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\VisualElementPackager.cs:204 在 Xamarin.Forms.Platform.Android.VisualElementPackager.Load () [0x00000] 在 C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms .Platform.Android\VisualElementPackager.cs:56 在 Xamarin.Forms.Platform.Android.VisualElementRenderer1[TElement].SetPackager (Xamarin.Forms.Platform.Android.VisualElementPackager packager) [0x00007] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\VisualElementRenderer.cs:327 at Xamarin.Forms.Platform.Android.VisualElementRenderer1[TElement].SetElement(Xamarin.Forms.Platform.Android.TElement 元素)[0x00111] 在 C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\VisualElementRenderer.cs:195 在 Xamarin.Forms.Platform .Android.VisualElementRenderer 1[TElement].Xamarin.Forms.Platform.Android.IVisualElementRenderer.SetElement (Xamarin.Forms.VisualElement element) [0x00027] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\VisualElementRenderer.cs:128 at Xamarin.Forms.Platform.Android.Platform.CreateRenderer (Xamarin.Forms.VisualElement element) [0x0001f] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\Platform.cs:282 at Xamarin.Forms.Platform.Android.VisualElementPackager.AddChild (Xamarin.Forms.VisualElement view, IVisualElementRenderer oldRenderer, Xamarin.Forms.Platform.Android.RendererPool pool, Boolean sameChildren) [0x00023] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\VisualElementPackager.cs:72 at Xamarin.Forms.Platform.Android.VisualElementPackager.SetElement (Xamarin.Forms.VisualElement oldElement, Xamarin.Forms.VisualElement newElement) [0x00104] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\VisualElementPackager.cs:204 at Xamarin.Forms.Platform.Android.VisualElementPackager.Load () [0x00000] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\VisualElementPackager.cs:56 at Xamarin.Forms.Platform.Android.VisualElementRenderer1[TElement].SetPackager (Xamarin.Forms.Platform.Android.VisualElementPackager packager) [0x00007] 在 C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\VisualElementRenderer.cs:327 在 Xamarin .Forms.Platform.Android.VisualElementRenderer1[TElement].SetElement (Xamarin.Forms.Platform.Android.TElement element) [0x00111] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\VisualElementRenderer.cs:195 at Xamarin.Forms.Platform.Android.VisualElementRenderer1[TElement].Xamarin.Forms.Platform.Android.IVisualElementRenderer.SetElement(Xamarin.Forms.VisualElement 元素)[0x00027] 在 C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\VisualElementRenderer.cs:128在 Xamarin.Forms.Platform.Android.Platform.CreateRenderer (Xamarin.Forms.VisualElement 元素)[0x0001f] 在 C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\Platform.cs:282 在 Xamarin.Forms .Platform.Android.Platform.AddChild(Xamarin.Forms.VisualElement 视图,布尔布局)[0x00015] 在 C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\Platform.cs:518 在 Xamarin.Forms。 Platform.Android.Platform.SetPage (Xamarin.Forms.Page newRoot) [0x00089] 在 Xamarin.Forms.Platform.Android 的 C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\Platform.cs:406。FormsApplicationActivity.InternalSetPage(Xamarin.Forms.Page 页面)[0x000b7] 在 C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\FormsApplicationActivity.cs:286 在 Xamarin.Forms.Platform.Android.FormsApplicationActivity.SetMainPage ( ) [0x00000] 在 C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\FormsApplicationActivity.cs:305 在 Xamarin.Forms.Platform.Android.FormsApplicationActivity.LoadApplication (Xamarin.Forms.Application 应用程序)[0x0002d]在 C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\FormsApplicationActivity.cs:108 在 Project.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x000ae] 在 /Users/ryan/project- app-xamarin/Project/Project.Droid/MainActivity.cs:47 在 Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (IntPtr jnienv, IntPtr native__this,IntPtr native_savedInstanceState) [0x00011] 在 /Users/builder/data/lanes/3340/4e275588/source/monodroid/src/Mono.Android/platforms/android-23/src/generated/Android.App.Activity.cs:2426 在在(包装器动态方法) System.Object:688deba4-7150-4f17-9062-10e53a94164c (intptr,intptr,intptr)

0 投票
2 回答
5904 浏览

button - 图像下的 Xamarin 自定义 ButtonRenderer 文本

我试图将标签放在按钮内的图像下方并将其居中。我有一个按钮的自定义渲染器,但由于某种原因,我无法产生所需的输出。代码在 C# Xamarin 中。


XAML 代码:

C# iOS 自定义渲染器


期望输出

0 投票
2 回答
1514 浏览

jsf - 自定义 JSF 组件渲染器:如何围绕另一个元素渲染 HTML

我有 2 个元素,banana 和 outputText,其中banana 是一个自定义 JSF 组件,在banana 渲染器中,我想生成包含指定元素的 HTML。

xhtml:

香蕉渲染器(将目标元素包含在锚链接中):

我想要达到的目标:

如您所见,我不想在香蕉组件上编码,而是在使用“for”属性的目标元素上进行编码。我看到的最接近的例子是 PrimeFaces 工具提示,但我不太明白它是如何利用“for”属性的。 http://www.primefaces.org/showcase/ui/overlay/tooltip/tooltipOptions.xhtml#

如果有人能指出我正确的方向,那将不胜感激。谢谢你。

0 投票
1 回答
597 浏览

c# - UIPickerView 的自定义渲染器

是否可以UIPickerView在 XAML 中定义的位置始终可见?

此控件的标准行为仅在我们单击Title属性时显示绑定列表,然后从屏幕底部(iOS)或弹出窗口(Android)显示包含列表作为内容的小部件。

我想让它从一开始就在它定义的地方(不在小部件中)可见。对象中没有类似Position的东西picker

0 投票
1 回答
1345 浏览

google-maps - 不刷新自定义渲染器 Xamarin 表单地图

我创建了一个带有实时位置更新的自定义标记的地图。但是在向地图添加新引脚后,它不会应用自定义渲染器。如果我在地图上放大或缩小,它会为标记应用自定义渲染。这是我的代码。

此代码在 Xamarin.Droid 项目中

此代码位于 Xamarin.Forms 项目中

这就是我在 Xamrin.Fomrs 项目中使用自定义地图呈现图钉的方式

0 投票
1 回答
342 浏览

android - 如何仅将自定义渲染器添加到某些特定布局?

比方说,我想更改标签的字体。这意味着我将不得不写这样的东西:

但是,将其添加到项目将使所有标签都以指定的字体呈现。如果我只想用该字体渲染一些特定的标签怎么办?

也许一个解决方案是从 Label 继承并将渲染器添加到该继承的类,因此仅将其应用于该特定类的实例,因此仅将其应用于指定的标签。因此,我的问题由两部分组成:(1)我描述的方式是正确的方式,它会起作用,如果不是,(2)什么是正确的方式?

0 投票
1 回答
1751 浏览

xamarin - 如何将背景图像设置为 xamarin.forms 中的条目单元格

我已经使用自定义渲染来以 xamarin 形式显示 IOS 和 android 的条目单元格。我可以更改单元格的背景颜色,但有没有办法将任何背景图像设置为条目单元格。还有如何隐藏默认的android入口单元格中的下栏线。

我在 PCl 中的自定义输入单元格:

0 投票
3 回答
1897 浏览

c# - Xamarin:Windows uwp 的分段控制

如何在 Windows UWP 中为分段控制制作自定义渲染器。我按照此链接在 IOS 和 android 中自定义渲染分段控件。但我找不到任何适用于 Windows UWP 的东西。任何人都可以在此提供任何资源,或者是否有任何替代方式来执行此操作,类似于 Windows UWP 中的分段控制。

在此处输入图像描述