c# - 如何在阿瓦隆尼亚扩展控制?

标签 c# avaloniaui

我想用一些功能扩展默认下拉菜单。自定义下拉列表的行为应该类似于 .xaml 中的默认下拉列表。文件,因此应该可以向其中添加项目。

不幸的是,它似乎不像在 WPF 中那样工作。这就是我的方法:

MainWindow.xaml: (添加了命名空间)

<local:myCustomDropDown>
  <DropDownItem>1</DropDownItem>
  <DropDownItem>2</DropDownItem>
</local:myCustomDropDown>

myCustomDropDown.xaml:
<DropDown xmlns="https://github.com/avaloniaui"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          x:Class="AvaloniaApplication2.myCustomDropDown">
</DropDown>

隐藏代码:
public class myCustomDropDown : DropDown
{
    public myCustomDropDown()
    {
        this.InitializeComponent();
    }

    private void InitializeComponent()
    {
        AvaloniaXamlLoader.Load(this);
    }
}

这似乎编译没有错误或警告,但控件不显示。

最佳答案

您还需要应用 DropDown 的控件样式。您可以通过像这样更改样式键来做到这一点:https://github.com/AvaloniaUI/Avalonia/blob/353c24b8abdeaae2a1c543665ef46c2161573e9f/src/Avalonia.Controls/UserControl.cs#L31
:

public class UserControl : ContentControl, IStyleable
{
        Type IStyleable.StyleKey => typeof(ContentControl);

关于c# - 如何在阿瓦隆尼亚扩展控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51746650/

相关文章:

c# - C# 中的字符串格式化以获得相同的间距

c# - jQuery Mobile + MVC 3 + Request.Path

c# - 将 Ninject 与 ServiceLocater 模式结合使用——好还是坏

c# - 使用数组 C# 复制文件的进度条

c# - 使用 DataBinding 时如何自动滚动 AvaloniaUI ScrollViewer?

Avalonia 中的 OpenFileDialog - ShowAsync 出错

c# - AvaloniaUI - 如何直接在 Canvas 上绘制

c# - WebApi2 - 没有 OWIN 身份验证管理器与请求关联

xaml - AvaloniaUI 样式-伪类

titlebar - 阿瓦罗尼亚 : Hiding titlebar window on Linux does not work