我面临的问题是,在加载旧布局后,我无法打开类型X的锚定.仅当我在保存布局之前关闭了类型X的可锚定时才会发生这种情况.
AvalonDock有没有类似的问题?这是AvalonDock的错误吗?经过多年的调试,我担心在ViewModel中进行<Setter Property="IsActive" Value="{Binding Model.IsActive, Mode=TwoWay}"/>更改时,视图中的绑定无法正确更新IsActive.AvalonDock应该负责这项任务.但也许问题是加载和保存布局?
视图
Loaded我DockingManager在我的视图中的事件加载我的anchorables(=工具窗口)的保存布局像这样(简化):
string savedLayout = Properties.Settings.Default.Layout;
XmlDocument doc = new XmlDocument();
doc.LoadXml(savedLayout);
// very simplified code. load saved xml layout and add anchorables to the dockmanager
doc.SelectNodes("//LayoutAnchorable").OfType<XmlNode>().ToList().ForEach(anchorable =>
{
this.DockManager.AnchorablesSource.Add(anchorable);
});
Run Code Online (Sandbox Code Playgroud)
我正在我的视图中的Closing事件中保存我的anchorables的当前布局,MainWindow如下所示(简化):
XmlDocument doc = new XmlDocument();
XmlLayoutSerializer xmlLayoutSerializer = new XmlLayoutSerializer(this.DockManager);
using (MemoryStream stream = new MemoryStream())
{
xmlLayoutSerializer.Serialize(stream);
stream.Seek(0, SeekOrigin.Begin);
doc.Load(stream);
}
// here happens some magic. i think …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Xceed CheckComboBox,除了一个小问题之外它运行良好.最初加载CheckComboBox时,CheckComboBox的ToggleButton部分中正确显示所选项List,但不检查表示这些项的复选框.这是我正在使用的代码
XAML
<xctk:CheckComboBox x:Name="_combo" Grid.Row="2" Grid.Column="1"
ItemsSource="{Binding RoomFacilities}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
DisplayMemberPath="FacilityName"
SelectedItemsOverride="{Binding SelectedFaclities}"
/>
Run Code Online (Sandbox Code Playgroud)
查看模型
public class RoomBandUpdateViewModel : Screen, IHandle<RecordChanged<RoomFacility>>,
IHandle<RecordDeleted<RoomFacility>> {
private ObservableCollection<RoomFacility> _roomFacilities;
public ObservableCollection<RoomFacility> RoomFacilities {
get { return _roomFacilities; }
set { _roomFacilities = value; NotifyOfPropertyChange(() => RoomFacilities); }
}
private ObservableCollection<RoomFacility> _selectedFacilities;
public ObservableCollection<RoomFacility> SelectedFaclities {
get { return _selectedFacilities; }
set { _selectedFacilities = value; NotifyOfPropertyChange(() => SelectedFaclities); }
}
protected override void OnActivate() {
SelectedFaclities = new ObservableCollection<RoomFacility>(RoomBand.Facilities);
RoomFacilities …Run Code Online (Sandbox Code Playgroud) 我是C#/ WPF的初学者,我正在尝试使用Xceed PropertyGrid.在他们的网站上他们展示了一个例子
<xctk:PropertyGrid x:Name="_propertyGrid" Width="450" Margin="10"
AutoGenerateProperties="False">
<!-- Only the following properties will be displayed in the PropertyGrid -->
<xctk:PropertyGrid.PropertyDefinitions>
<xctk:PropertyDefinition Name="FirstName" />
<xctk:PropertyDefinition Name="FavoriteColor" />
<xctk:PropertyDefinition Name="PetNames" />
</xctk:PropertyGrid.PropertyDefinitions>
</xctk:PropertyGrid>
Run Code Online (Sandbox Code Playgroud)
我插入到我的xaml中.我看到了PropertyGrid View但是我没有看到任何属性定义.我觉得我必须遗漏一些基本的东西?我应该在代码隐藏中添加任何内容吗?
使用一组Anchorables设置AvalonDock时,例如:
<a:LayoutRoot>
<a:LayoutPanel Orientation="Horizontal">
<a:LayoutAnchorablePane>
<a:LayoutAnchorable Title="A1">
<!-- content -->
</a:LayoutAnchorable>
<a:LayoutAnchorable Title="A2">
<!-- content -->
</a:LayoutAnchorable>
</a:LayoutAnchorablePane>
<!-- ... -->
Run Code Online (Sandbox Code Playgroud)
DockingManager(或AvalonDock中的其他东西)是否有内置的方式来管理已关闭的Anchorables?它们是否存储在某个地方的集合中,以便可以检索并再次显示它们?
例如,用户从上面的代码中关闭第一个(A1),会发生什么?
如何再次显示?
处理关闭和恢复锚点的典型工作流程是什么?
我正在尝试通过进行Zoombox控制Xceed。不幸的是,鼠标滚轮或平底锅上没有任何反应。我在这里想念什么吗?
https://github.com/xceedsoftware/wpftoolkit
<Window x:Class="UI.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
Title="MainWindow" Height="800" Width="700">
<Grid>
<xctk:Zoombox MinScale="0.5" MaxScale="100" >
<Grid Width="600" Height="400" Background="Yellow">
<Ellipse Fill="Blue" />
</Grid>
</xctk:Zoombox>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud) 我需要做的是压缩文件的64KB块,因为它们是从外部服务进来的,然后实时地将这一块压缩数据流式传输到浏览器.Xceed Real-Time非常棒,您可以设置文件的标头,然后将多个64KB块拼凑成客户端上的整个压缩文件.这很好用,您可以通过将其放在循环中轻松处理多个文件.
我的问题是:是否有一个免费的替代压缩实用程序,可以匹配Xceed的复杂性?我需要能够压缩文件并将文件的一部分流式传输到浏览器的东西.几乎所有我见过的免费替代方案都需要在压缩发生之前访问整个文件.Xceed很棒,但价格昂贵.只是想知道是否有一个可以实现这一目标的免费替代品.谢谢!
我正在使用Xceed可检查组合框.现在我想显示一个默认文本,具体取决于组合框中选中的复选框,但我不知道该怎么做.
例如:

文本框的内容(红色箭头)应为:
喜欢:

例如,代码:
XAML:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
Title="MainWindow" Height="350" Width="525">
<Grid>
<xctk:CheckComboBox x:Name="_checkComboBox"
Height="22"
VerticalAlignment="Stretch"
ItemsSource="{Binding Names}"
SelectedItemsOverride="{Binding SelectedNames}"
DisplayMemberPath="Title"
Delimiter=", "
Width="100"/>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
CS:
using System.Windows;
namespace WpfApplication1
{
using System.Collections.ObjectModel;
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
_checkComboBox.DataContext = this;
Names = new ObservableCollection<People>()
{
new People() { Title = "Mikel" },
new People() { Title = "Tom" },
new People() { Title = "Jennifer" }, …Run Code Online (Sandbox Code Playgroud) 我有一个 WPF C# 应用程序。
我正在使用 Xceeed.wpf 工具包
在伪代码中,我的函数将:
实际上,在 REST API 调用完成之前,BusyIndicator 不会显示。有时它确实会显示,但“品牌”效果并不流畅。
我尝试了几种方法,这是我的最新尝试:
// raise event to invoke method call on main UI page
// event raised here
Task.Run(() =>
{
// makes API call
busyIndicator.IsBusy = false;
);
public void ShowBusy()
{
this.InvokeOnMainThread(() =>
{
busyIndicator.IsBusy = true;
});
}
public static void InvokeOnMainThread(this Control control, Action method)
{
if (!control.Dispatcher.CheckAccess())
{ Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, method);
return;
}
method();
}
Run Code Online (Sandbox Code Playgroud)
标记:
<xctk:BusyIndicator Name="busyIndicator" …Run Code Online (Sandbox Code Playgroud) 我正在使用 Xceed DateTimePicker 控件。问题在于它的日历大小:当您放大控件本身的字体时,其弹出日历的大小和字体不会改变。如何更改弹出窗口的大小?
xceed ×10
wpf ×9
c# ×7
xaml ×4
.net ×2
avalondock ×2
archive ×1
combobox ×1
compression ×1
mvvm ×1
propertygrid ×1
wpftoolkit ×1
zip ×1