自定义控件是可重用的GUI元素,从现有控件类型派生,使用其他行为,功能和/或外观进行自定义。
我正在我的应用程序中实现屏幕截图,用户可以选择要捕获的部分,为此,我创建了一个控件来使用示例专业版覆盖图片框...
我已经构建了一个带有标准和自定义控件的动态表单(一个简单的按钮比例来推送和检索值)。我遵循 Angular 教程和其他教程来确保我正在构建
我正在制作一个自定义控件,它是一个可扩展/可折叠面板,然后我可以用其他控件填充它。我不确定如何将展开/折叠命令连接到按钮。 我用过这个...
自定义 Elementor Widget 控件不接受默认常量
我一直在关注 Elementor 关于创建自定义小部件的文档。注册控件时,Elementor 编辑器开始崩溃,永远卡在加载上。 原始代码: 我一直在关注 Elementor 关于创建自定义小部件的文档。注册控件时,Elementor 编辑器开始崩溃,永远卡在加载状态。 原代码: <?php class Custom_Widget extends \Elementor\Widget_Base { $this->start_controls_section( 'content_section', [ 'label' => esc_html__( 'Content', 'textdomain' ), 'tab' => \Elementor\Controls_Manager::TAB_CONTENT, //causes the issue. ] ); } ?> 我一遍又一遍地检查语法,但不明白为什么。在偶然发现这个支持票之后,我注意到OP使用的是SECTION常量而不是TAB_CONTENT或TAB_STYLE。这解决了我的问题,但我无法使用这两个常量注册任何部分而不会使 Elementor 编辑器崩溃。 新代码: <?php class Custom_Widget extends \Elementor\Widget_Base { $this->start_controls_section( 'content_section', [ 'label' => esc_html__( 'Content', 'textdomain' ), 'tab' => \Elementor\Controls_Manager::SECTION, //Loads the Elementor editor ] ); } ?> TAB_CONTENT 和 TAB_STYLE 都是 默认 Elementor Tabs 常量。那么,为什么它们不适合我?另外,由于 SECTION 常量不是默认常量,因此它不应该引起问题吗? 我不知道 Elementor 中有类似 Controls_Manager::SECTION 的内容。据我了解文档,控制部分是控件的包装器,而不是控件本身。另外,您在此处粘贴的代码有点断章取义。您是否正确注册了控件?
我创建了一个带有一些属性的自定义控件,所有这些似乎都正常工作。 但经过一些测试,我发现了一种我不明白的奇怪行为。当我在 OneWay mod 中绑定属性时...
特别感谢@BionicCode 让我开始使用我的用户控件样式: 设置自定义控件的样式 我创建了一个带有按钮和文本块的简单演示自定义控件。现在我要添加一个...
WPF,基于(装饰器类)的自定义控件,装饰器的子级的垂直或水平对齐方式设置后生效
我想要一个自定义控件来包裹它的子控件并添加四个FrameworkElements作为(边框边),所以我选择了WPF的Decorator类,该类和xaml都在下面的githu中...
我创建了一个扩展 TextBox 的 CustomTextBox。 我已经覆盖了 TextProperty 的元数据,因为我想在文本更改时触发一个方法,但是当我运行代码并编辑文本时...
实现 ControlValueAccessor 和 Validator 接口的自定义控件组件。 此自定义控件无法正确显示来自父组件验证器的错误。甚至家长组成...
我试图根据图像的形状(蓝色块)来显示以下内容: 我有一些问题: 图像拉伸应限制在其可用区域内,由
我的问题与此有关 如何显示带有深色背景的弹出消息 但主要问题是我想在面板内添加淡入淡出形式和焦点形式。我问过这个问题...
使用 C# winui 3 (.NET 6),我编写了一个自定义控件 CommonButtonControl,由包含 Image 和 TextBlock 的 Button 组成。我的想法是我可以为所有人保持一致的外观和感觉
如何在代码隐藏中在 WPF C# 中创建带有图像的自定义消息框?
如何在 WPF C# 中的代码隐藏(没有 XAML)中创建自定义消息框(对话框)? 我用谷歌搜索了一下,似乎没有找到解决方案。我想要一个带有图像和其他内容的消息框
通常,当您打开模态对话框并尝试单击其父窗口时,模态对话框的标题栏会闪烁。在 WPF 中创建自定义、无边框、无边框窗口时,您会失去所有这些
大家下午好。我意识到这个主题可能在其他地方有所涉及。 我在 C# 方面很有经验,但大部分经验是使用控制台应用程序、Win Forms,而不是 GUI 的 WPF,...
如何减少 True Transparency WinForm 更新时的闪烁?或者有更好的方法吗?
这一直是我面临的一个问题,我一直在尝试制作一个具有良好透明度的自定义绘制表单。 这是我现在所能达到的最接近的结果,我半小时前就开始了.. 编辑: 我...
我正在向现有网络应用程序添加报告部分。该部分由通过两个不同的 .ascx 文件加载的两个页面组成。我不允许修改任何关于 h 的内部逻辑...
在这里,我们正在fabric.js中使用创建设计工具。我们在fabric.js中为画布对象创建了自定义选择区域。我阅读了fabric.js中的源代码,它生成了用于边界的方框...
我正在开发 .net maui 应用程序,我需要在自定义控件中获取和设置数据。 目标是: 操作模板 这一页: 我正在开发 .net maui 应用程序,我需要在自定义控件中获取和设置数据。 目标是: 页面: <ContentPage x:Class="V7.UIS.MauiMobile.Views.AboutPage" xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:controls="clr-namespace:V7.UIS.MauiMobile.Controls.Views" xmlns:viewmodel="clr-namespace:V7.UIS.MauiMobile.ViewModels" Title="About" ios:Page.UseSafeArea="true" x:DataType="viewmodel:AboutViewModel" BackgroundColor="{StaticResource NormalBackgroundColor}"> <VerticalStackLayout> <controls:ItemBarcodeSearchView /> <Entry Text="Count" /> <Button Grid.Row="1" Grid.Column="1" Command="{Binding AddCommand}" Text="Add" /> </VerticalStackLayout> </ContentPage> 自定义控件xaml: <?xml version="1.0" encoding="utf-8" ?> <ContentView x:Class="V7.UIS.MauiMobile.Controls.Views.ItemBarcodeSearchView" xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:dxe="clr-namespace:DevExpress.Maui.Editors;assembly=DevExpress.Maui.Editors" x:Name="BarcodeSearchView"> <ContentView.ControlTemplate> <ControlTemplate> <VerticalStackLayout> <Grid x:Name="ButtonGrid" Margin="5" IsVisible="{TemplateBinding IsVisibleButtonGrid}"> <Button Clicked="ShowView" Text="Enter Barcode" /> </Grid> <Grid x:Name="DetailGrid" Padding="15" ColumnDefinitions="*" ColumnSpacing="20" IsVisible="{TemplateBinding IsVisibleDetailGrid}" RowDefinitions="Auto,Auto" VerticalOptions="Center"> <dxe:TextEdit Grid.Row="0" Margin="0" ClearIconCommand="{TemplateBinding ClearFieldsCommand}" ClearIconVisibility="Always" LabelText="Barcode" Text="{TemplateBinding Barcode}" /> <dxe:TextEdit Grid.Row="1" Margin="0" ClearIconVisibility="Never" LabelText="Item" Text="{TemplateBinding ItemDescription}" /> <Button Grid.Row="6" Margin="0,10,0,0" Command="{Binding Source={x:Reference BarcodeSearchView}, Path=Search}" Text="Search" /> <Button Grid.Row="7" Margin="0,10,0,0" Clicked="SendBarcodeDetails" Text="Ok" /> </Grid> </VerticalStackLayout> </ControlTemplate> </ContentView.ControlTemplate> </ContentView> 当我按下搜索按钮时,我想执行此命令来设置项目描述。这是该内容视图的业务逻辑,我不想一遍又一遍地重复此代码。: private readonly HttpClient _client; public blabla(IHttpClientFactory factory) { _client = factory?.CreateClient(AppConstants.ApiName); } GetBarcodeDetailQuery query = new() { Barcode = barcode }; await client.GetDataFromApi<GetBarcodeDetailQuery, GetBarcodeDetailViewModel>("Cards/ItemBarcode/GetBarcodeDetail", query, FindBarcodeCallBack); 我应该在哪里进行此操作以及如何进行?我一周都想不出来。 自定义控件xaml.cs: using CommunityToolkit.Mvvm.Input; using V7.UIS.MauiMobile.Models; namespace V7.UIS.MauiMobile.Controls.Views; public partial class ItemBarcodeSearchView : ContentView { public ItemBarcodeSearchView() { InitializeComponent(); IsVisibleButtonGrid = "true"; IsVisibleDetailGrid = "false"; } public event EventHandler<ItemBarcodeDetail> BarcodeDetailsReady; public static readonly BindableProperty BarcodeProperty = BindableProperty.Create(nameof(Barcode), typeof(string), typeof(ItemBarcodeSearchView)); public static readonly BindableProperty ItemDescriptionProperty = BindableProperty.Create(nameof(ItemDescription), typeof(string), typeof(ItemBarcodeSearchView)); public static readonly BindableProperty IsVisibleButtonGridProperty = BindableProperty.Create(nameof(IsVisibleButtonGrid), typeof(string), typeof(ItemBarcodeSearchView)); public static readonly BindableProperty IsVisibleDetailGridProperty = BindableProperty.Create(nameof(IsVisibleDetailGrid), typeof(string), typeof(ItemBarcodeSearchView)); public static readonly BindableProperty SearchProperty = BindableProperty.Create(nameof(Search), typeof(RelayCommand), typeof(ItemBarcodeSearchView)); public RelayCommand Search { get => (RelayCommand)GetValue(SearchProperty); set => SetValue(SearchProperty, value); } public string IsVisibleButtonGrid { get => (string)GetValue(IsVisibleButtonGridProperty); set => SetValue(IsVisibleButtonGridProperty, value); } public string IsVisibleDetailGrid { get => (string)GetValue(IsVisibleDetailGridProperty); set => SetValue(IsVisibleDetailGridProperty, value); } public string Barcode { get => (string)GetValue(BarcodeProperty); set => SetValue(BarcodeProperty, value); } public string ItemDescription { get => (string)GetValue(ItemDescriptionProperty); set => SetValue(ItemDescriptionProperty, value); } [RelayCommand] public void ClearFields() { Barcode = string.Empty; ItemDescription = string.Empty; } private void SendBarcodeDetails(object sender, EventArgs e) { ItemBarcodeDetail itemBarcodeDetail = new() { Barcode = Barcode, ItemDescription = ItemDescription }; BarcodeDetailsReady?.Invoke(sender, itemBarcodeDetail); IsVisibleButtonGrid = "true"; IsVisibleDetailGrid = "false"; } private void ShowView(object sender, EventArgs e) { IsVisibleButtonGrid = "false"; IsVisibleDetailGrid = "true"; } } 希望有人能帮助我。 ContentView类定义了一个View类型的Content属性,它表示ContentView的内容。该属性由 BindableProperty 对象支持,这意味着它可以是数据绑定和样式的目标。 ContentView 类本身提供的功能很少,但可用于创建自定义控件。创建自定义控件的过程是: 创建一个派生自 ContentView 类的类。 在代码隐藏文件中定义任何控件属性或事件 自定义控件。 定义自定义控件的 UI。 更多信息可以查看官方文档:创建自定义控件。 注: 您还可以在此处查看示例 ContentView 演示,这将帮助您了解如何使用 ContentView 创建自定义控件。虽然此示例是 Xamarin 表单的应用程序,但它也适用于 MAUI。
我正在开发 .net maui 应用程序,我需要在自定义控件中使用 httpclientfactory。 我正在开发 .net maui 应用程序,我需要在自定义控件中使用 httpclientfactory。 <VerticalStackLayout> <controls:ItemBarcodeControl x:Name="control1" BarcodeDetailsReady="ItemBarcodeControl_BarcodeDetailsReady" /> <Entry Text="Depo" /> <Button Grid.Row="1" Grid.Column="1" Text="Add" Clicked="Button_Clicked"/> </VerticalStackLayout> 当我尝试在页面中使用自定义控件时,出现错误,提示 xxx 不能用作对象元素,因为它不是公共的,或者没有定义公共无参数构造函数或类型转换器。 这是我的xaml.cs public partial class ItemBarcodeControl : ContentView { private readonly HttpClient _client; public event EventHandler<ItemBarcodeDetail> BarcodeDetailsReady; //Bindable properties public ItemBarcodeControl(IHttpClientFactory factory) { InitializeComponent(); IsVisibleButtonGrid = "true"; IsVisibleDetailGrid = "false"; _client = factory?.CreateClient(AppConstants.ApiName); } public string IsVisibleButtonGrid { get => (string)GetValue(IsVisibleButtonGridProperty); set => SetValue(IsVisibleButtonGridProperty, value); } public string IsVisibleDetailGrid { get => (string)GetValue(IsVisibleDetailGridProperty); set => SetValue(IsVisibleDetailGridProperty, value); } // Property Definitions //Some Commands async Task FindItemDetails() { if (!string.IsNullOrEmpty(Barcode)) { GetBarcodeDetailQuery query = new() { Barcode = Barcode }; await _client.GetDataFromApi<GetBarcodeDetailQuery, GetBarcodeDetailViewModel>("Cards/ItemBarcode/GetBarcodeDetail", query, FindBarcodeCallBack); } } void FindBarcodeCallBack(GetBarcodeDetailViewModel vm) { ItemDescription = vm.Item.Description; ItemUnit = vm.ItemUnits.FirstOrDefault().ToString(); ItemLot = vm.Lot.ToString(); ItemSerialNumber = vm.SerialNumber.ToString(); Quantity = "0"; } // Here is my main purpose for this view. Where should i make this operation im not sure. } 希望有人能帮助我。 ContentView类定义了一个View类型的Content属性,它表示ContentView的内容。该属性由 BindableProperty 对象支持,这意味着它可以是数据绑定和样式的目标。 ContentView 类本身提供的功能很少,但可用于创建自定义控件。创建自定义控件的过程是: 创建一个派生自 ContentView 类的类。 在代码隐藏文件中定义任何控件属性或事件 自定义控件。 定义自定义控件的 UI。 更多信息可以查看官方文档:创建自定义控件。 注: 您还可以在此处查看示例 ContentView 演示,这将帮助您了解如何使用 ContentView 创建自定义控件。虽然此示例是 Xamarin 表单的应用程序,但它也适用于 MAUI。