问题标签 [avaloniaui]
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.
c# - 使用 DataBinding 时如何自动滚动 AvaloniaUI ScrollViewer?
我在我的 AvaloniaUI 应用程序中有这个设置:
TextBlock 基本上显示日志消息,当我将新行附加到绑定到 text 属性的字符串时,我希望它自动滚动到底部。
ScrollViewer 有一个名为 的方法ScrollToEnd()
,每当我更新文本时都需要调用它。所以我试图在我的代码中定义一个函数,如下所示:
然后我尝试从我的 ViewModel 调用该函数:
但不幸的是,这个ScrollToEnd()
函数需要从 UI-Thread 调用,因为我得到一个异常:
System.InvalidOperationException:'从无效线程调用'
我的问题是,每当我通过 DataBinding 更新 TextBlocks Text 属性时,如何将 ScrollViewer 自动滚动到最后?
avaloniaui - 如何在背景中平铺图像?
我尝试这样做,但它不起作用:
感觉需要为 TileMode="Tile" 做一些其他事情才能使其工作。上面的标记只在边框的角落显示一个图像,就是这样。
c# - 是否可以在 Avalonia 的项目之外引用 XAML 文件?
所以我在我的 Avalonia 项目之外有一个 XAML 文件,称为Base.xaml
存储一个Styles
对象。我想在我的文件StyleInclude
中引用它,而不将它添加到我的项目中,但是:MainWindow.xaml
- 当我使用相对路径 (
<StyleInclude Source="..\Base.xaml" />
) 时,它表示无法解析此 URI。 - 当我使用绝对路径 (
<StyleInclude Source="C:\Base.xaml" />
)时,当窗口中有控件时,StyleInclude
对象返回null
并抛出。NullReferenceException
我怎么解决这个问题?
c# - 如何以编程方式绑定 XAML 中的数据
我将 roslynpad 项目用于教育目的。它基于 avalon 码头库,它实现了对我来说是新的 MVVM 模式。有可以停靠的编辑器窗口。我想添加也可以停靠的新窗口,但它应该是我的自定义窗口。我看到停靠管理器绑定到 OpenDocumentViewModel 对象的集合。OpenDocumentViewModel 表示所理解的视图模型。比有一个描述窗口布局的 DocumentView 类。现在主窗口 xaml 文件中有一行:
该行负责连接视图模型和文档视图,换句话说,对于该 DocumentView 设计应该附加到 OpenDocumentViewModel 集合中的窗口。
我想用我自己的设计插入我的窗口。所以对于特定的窗口我想写
但我不知道该怎么做,或者这是不可能的?
avaloniaui - Avalonia Ui 中的 DependencyPropertyDescriptor (wpf) 的模拟?
如何在 Avalonia 中实现相同的行为(wpf)?
c# - 在 Avalonia 中根据 DataContext 属性选择 DataTemplate
我正在实现一个应该显示设置列表的 UserControl:
应根据每种类型ValueType
使用不同的 DataTemplate。
为方便起见,UserControl 具有以下控件,其中 aSettingPropertyItem
作为其 DataContext:
然后在使用 Usercontrol 的视图中,我在其 DataTemplates 中添加了一个 DataTemplate:
到目前为止一切顺利,一切都按预期工作。但现在我有点难过,因为我不知道如何根据 DataContext 中的属性应用不同的 DataTemplates。
使用 WPF,DataTemplateSelector 或 Triggers 似乎是要走的路(忽略其他框架),但它们似乎在 Avalonia 中不存在。我也尝试过样式,但选择器似乎无法访问 DataContext 属性。
如何才能做到这一点?
c# - Avalonia WriteableBitmap BitmapContext 上的工件
我正在尝试BitmapContext
为 AvaloniaWrieableBitmap
类编写 WriteableBitmapEx。代码成功地设置了我想要的颜色像素,并得到了它们,但是 BitmapContext 用我没有设置的颜色弄乱了一些像素。例如,我提供它应该设置 4 倍LightSalmon
颜色,其余应该是#000000
.
BitmapContext 看起来像这样:
设置和获取像素如下所示:
和例子:
输出:
LightSalmon
我设置的颜色在哪里
还值得注意的是,当我不在GetPixel
上下文中包装循环时,位图大小例如为 15x15 它会抛出
c# - 为什么拖放文件在 Avalonia 应用程序的窗口中不起作用?
我正在尝试使用 Avalonia 项目中包含的文件来实现拖放。
由于我无法使其正常工作,并且我认为这可能是一个特殊情况,因此我尝试制作一个类似的示例,例如ControlCatalogStandalone中的示例。
虽然ControlCatalogStandalone中的代码按预期工作,但我的测试应用程序中几乎相同的代码不能正常工作。ControlCatalogStandalone
中的相关代码属于 UserControl,在我的应用程序中它属于. 这可能是不当行为的原因吗?
我创建了一个新的Avalonia MVVM 应用程序ListBox
Window
ListBox
MainWindow
基于0.9.11
Visual Studio 2019 中的 NuGet 包。
我也尝试过版本0.10.0-preview2
。
这是 XAML 文件:
这是背后的代码:
应用程序中的拖放在ControlCatalogStandalone 和我的应用程序中运行良好。在这种情况下
,事件的连续性是DoDrag
, DragOver
, DragOver
, ...。
将文件从 Windows 资源管理器拖到ControlCatalogStandalone效果很好。
事件的连续性是, , ...,
将文件从 Windows 资源管理器拖动到我的应用程序不起作用。
这里没有调用任何预期的事件。
我的测试应用程序有什么问题?Drop
DragOver
DragOver
Drop
c# - 如何在 Avalonia 应用程序中为 OpenFolderDialog 设置标题?
我正在使用OpenFileDialog
,SaveFileDialog
并OpenFolderDialog
在 Avalonia 应用程序中。
一个要求是将标题设置为某个字符串。
我实现了这一点OpenFileDialog
,SaveFileDialog
但不是。拒绝应用标题,因此只有根据操作系统语言的默认标题保持设置。
我发现在ControlCatalogStandalone中工作正确,即可以根据需要设置标题。
因此,我尝试将ControlCatalogStandalone简化为Dialogs功能,并将其转换为尽可能类似于我的测试应用程序。OpenFolderDialog
OpenFolderDialog
OpenFolderDialog
我无法做到这一点,但我发现了一些线索,可以帮助更熟练的开发人员找到我的测试应用程序行为不端的原因。ControlCatalogStandalone
的Solution和Project的结构和组成与我的 Avalonia 测试应用程序大不相同。
在我的测试应用程序中,目标框架是.
在ControlCatalogStandalone解决方案的一个项目中,目标框架是.
所以,我认为在.
我还认为,如果ControlCatalogStandalone是使用当前版本的.NET Core 3.1
.NET Standard 2.0
OpenFolderDialog
.NET Standard
.NET Core
Avalonia for Visual Studio
扩展,它不会产生框架的混合。
以下是我的测试应用程序的相关代码部分:
MainWindow.axaml:
MainWindowViewModel.cs:
MainWindow.axaml.cs:
我正在显示最后一个文件,因为我无法
Window GetWindow() => (Window)this.VisualRoot;
在我的 ViewModel 中实现该方法,该方法在ControlCatalogStandalone中被实现并在后面的代码中使用DialogsPage
(实际上是 a UserControl
)。
因此,我实现了Instance
可能是 hack 的属性。
如果您也可以给我提示最佳实践以获取实例,MainWindow
我会很高兴。
我的问题是无法在实现OpenFolderDialog
的未解决问题中设置标题.NET Core
,还是你能告诉我如何让它在我的简单测试应用程序中工作?
c# - 是否可以从 System.Drawing.Bitmap 创建 Avalonia.Media.Imaging.Bitmap?
我正在 Avalonia 中编写一个应用程序并使用 OpenCvSharp 从相机中获取帧。这适用于 WPF - 我刚刚打电话给
但这在 Avalonia 中不起作用,因为存在不同类型的Image控件,以及不同类型的Source属性。
我尝试通过MemoryStream执行此操作,但随后Bitmap构造函数因ArgumentNullException崩溃(尽管流不为空)。