C# 如何在Avalonia扩展控制?

C# 如何在Avalonia扩展控制?,c#,avaloniaui,C#,Avaloniaui,我想用一些功能扩展默认下拉列表。自定义下拉列表的行为应类似于.xaml文件中的默认下拉列表,因此可以向其中添加项目 不幸的是,它似乎不像WPF那样工作。这就是我的方法: MainWindow.xaml:(添加了名称空间) 这似乎在编译时没有错误或警告,但控件不会显示。您还需要应用下拉列表的控件样式。您可以通过如下方式更改样式键来完成此操作: : public类UserControl:ContentControl,IStyleable { Type IStyleable.StyleKey=>typ

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

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

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


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

您还需要应用下拉列表的控件样式。您可以通过如下方式更改样式键来完成此操作: :

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

Link only answer!复制相关部分并将其作为答案的一部分发布,而不是仅仅指向其他网站。有关更多信息,请阅读@keks,以了解一些参考的myget存储库正在关闭(不再可访问)你能解释一下你的答案吗?我知道在GitHub的世界里,链接20个项目是“可以接受的”…但是,我们无法再为AvalonStudio构建源代码,因为其中一个F#测试项目需要一个不再存在的引用。因此,在StackExchange上,每个人都指向链接,只回答并尖叫Mateusz所说的话。因为引用的链接下降了,答案不再存在;有点像github项目,链接断了新冠病毒时代的未决事件。:P
<local:myCustomDropDown>
  <DropDownItem>1</DropDownItem>
  <DropDownItem>2</DropDownItem>
</local:myCustomDropDown>
<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);
    }
}