Tag: xaml

如何创建返回集合的XAML标记扩展

我正在使用XAML序列化作为对象图(在WPF / Silverlight之外),我正在尝试创建一个自定义标记扩展,它允许使用对XAML中其他地方定义的集合的选定成员的引用来填充集合属性。 这是一个简化的XAML片段,演示了我的目标: 每个Country对象的Languages属性将使用IEnumerable 填充,其中包含对LanguageSelector中指定的Language对象的引用,该对象是自定义标记扩展。 以下是我尝试创建将在此角色中使用的自定义标记扩展: [ContentProperty(“Items”)] [MarkupExtensionReturnType(typeof(IEnumerable))] public class LanguageSelector : MarkupExtension { public LanguageSelector(string items) { Items = items; } [ConstructorArgument(“items”)] public string Items { get; set; } public override object ProvideValue(IServiceProvider serviceProvider) { var service = serviceProvider.GetService(typeof(IXamlNameResolver)) as IXamlNameResolver; var result = new Collection(); foreach (var item in Items.Split(new[] { ‘,’ […]

WPF API可以安全地用在WCF服务中吗?

我需要使用客户端XAML(来自Silverlight)并创建与服务器端资源(高分辨率图像)合并的位图,并且可以使用WPF(DrawingContext等)轻松地完成此操作。 有人提到服务器端(在IIS WCF中托管)使用WPF类似于在服务器上运行Office,这是一个非常糟糕的主意。 WPF是否可以在服务器上运行? 有哪些替代方案(尤其是xaml)? 我需要注意什么(内存泄漏,线程等)?

Xamarin表单按钮命令绑定在ListView中

我有以下问题,在我看来我有一个Listview。 在这个列表视图中,我想有两个按钮。 一个用于编辑项目,一个用于删除它。 这是我在XAML中的列表视图 在我的ViewModel中是我需要的一切,我使用不在listview中的按钮测试了命令,它完美无缺。 如果我将鼠标hover在绑定上,则会显示消息“无法解析符号’…’”

ListViewItem IsSelected Binding – 适用于WPF,但不适用于WinRT

我正在尝试将ListViewItem的IsSelected属性绑定到ViewModel中的属性。 它在WPF中工作正常,但在Windows RT中,IsSelected属性永远不会被设置。 public class Item : INotifyPropertyChanged { private readonly string name; private bool isSelected; public event PropertyChangedEventHandler PropertyChanged; public bool IsSelected { get { return isSelected; } set { isSelected = value; RaisePropertyChanged(“IsSelected”); } } public string Name { get { return name; } } public Item(string name) { this.name = name; } […]

Android在WPF中的涟漪效应

我喜欢Androids新动画,你触摸一个控件(listviewitem,按钮等等),它做了一个像这样的整洁动画: 我想知道如何在全局范围内为WPF中的所有“可点击”控件实现这一点。 我特别需要帮助的是如何在控件上创建圆圈。 我唯一想到的是为每个其他控件(按钮,单选按钮等)创建自己的用户控件,其中我有椭圆的父级以及原始控件本身。 <— this would be the button which you normally would place 然后在handler-method使用margin-properties在e.GetPosition(handler)点上创建一个椭圆,然后为其设置动画。 这个解决方案可行。 但是对于我希望产生连锁反应的每一个控制来说,这样做会很麻烦。 基本上是这样的: void handler(object sender, MouseButtonEventArgs e) { Grid parent = (Grid)sender; Ellipse ellipse = new Ellipse(); ellipse.Height = 10; // would be animated ellipse.Width = 10; // would be animated Point p = e.GetPosition(parent); ellipse.Margin = new […]

从View Model绑定到ListView项目的tapped属性

我正在尝试使用itemtapped属性将事件绑定到菜单页面上的ListView。 目前我在我的应用程序中使用MVVM(Xamarin表单实验室)框架。 我想要完成的是当用户点击菜单项时,应用导航到正确的视图。 这是xaml代码: //setup template here 我想将itemtapped事件绑定到此函数: public void NavigateTo(object sender, ItemTappedEventArgs args) { var test = args.Item as MenuModel; cPageTypes.GetByKey(test.CommandParameter) .SwitchRootPage(AIMCore.ViewModels.ElliottBaseViewModel.MasterPage); list.SelectedItem = null; AIMCore.ViewModels.BaseViewModel.MasterPage.IsPresented = false; } 如果我将函数添加到视图后面的代码然后设置ItemTapped =’NavigatTo ‘,我现在可以使用它,但这似乎是错误的,因为它击败了MVVM概念。 我真正想要做的是将事件绑定到我的ViewModel中的相同function,如下所示: // this binding is to the ViewModel 然而,这不起作用或我没有正确地做到这一点。 当我尝试以这种方式实现它时代码生成和错误。 错误: Xamarin.Forms.Xaml.XamlParseException:在Xamarin.Forms.Xaml.BaseValueNode.SetPropertyValue中找不到名称ItemTapped的属性

用于WPF的Windows 8现代UI样式

我希望我的WPF应用看起来像WinRT应用程序: 是否有任何现成的样式或控件可用于WPF,让我们实现这一目标?

WPF绑定与int类型的属性无法正常工作

我在我的视图模型中有一个int类型的属性,它绑定到TextBox 。 一切正常, TwoWay绑定工作正常,除了一个案例 – 如果我清除TextBox的值,则不会调用属性setter,虽然在TextBox清除了值,但属性仍保留以前的值。 有没有人遇到类似的问题? 这有什么解决方法吗? 这是物业 – public int MaxOccurrences { get { return this.maxOccurrences; } set { if (this.maxOccurrences != value) { this.maxOccurrences = value; base.RaisePropertyChanged(“MaxOccurrences”); } } } 这是我如何绑定xaml中的属性 –

UWP编译绑定x:Bind产生内存泄漏

在开发UWP应用程序时,我最近发现了很多内存泄漏,导致我的页面被GC收集。 我的页面上有一个ContentPresenter,如: 删除内容后,或用动态{Binding}替换它 – 当我从中导航时收集页面。 否则它会留在内存中。 是错误还是我做错了什么? 有没有办法释放并清除导航时的所有绑定? 更新:这似乎是微软内部已知的问题,如此处所述。 但是,就我自己的测试/应用程序使用情况而言,x:Bind保留的数据仍会在一段时间后收集,例如,当您导航到相同的页面或创建相同的控件一段时间。 我可以看到创建了新对象,但在某些时候收集了旧对象。 所以对我而言,它似乎并不是导致内存不足的严重问题,它只是不允许像动态绑定那样快速收集对象。

在WPF中动态更改旋转动画

我正在使用DoubleAnimation来动画RotationTransform的Angle属性。 每秒几次,我需要根据外部数据改变旋转速率,以便随着时间的推移旋转速度加快和/或减慢(平滑)。 我目前通过使用DoubleAnimation来实现这一点,DoubleAnimation从持续时间为X,然后每秒数次,从0.0到360.0永久重复: 从外部数据中获取新值 将DoubleAnimation上的速率修改为该值 再次将DoubleAnimation重新应用于Angle属性 注意:我确实发现我必须将动画上的To和From属性更改为“当前角度”和“当前角度+ 360” – 幸运的是我RotationTransform没有角度> 360度的麻烦 – 以防止开始旋转从零角度再次。 我的问题是:这是否合理? 它似乎并非如此。 在旋转变换上不断将新的DoubleAnimations应用于Angle属性似乎是错误的 – 有点像我让WPF为旋转设置动画,而我自己动画旋转速度。 有没有更好的办法?