Tag: xaml

DataGrid的CellEditingTemplate并专注于编辑模式

当自定义列提供CellTemplate和CellEditingTemplate时,我遇到了WPFToolkit DataGrid的问题。 如果你看一下下面,你会看到我的编辑模板有一个CheckBox 。 在function意义上一切都很好,但是当点击F2来编辑单元格时,还必须点击TAB才能使CheckBox获得焦点。 理想情况下,人们会点击F2和SPACE来切换值。 目前,必须打F2,TAB,SPACE。 我试过设置TabIndex无济于事。 我的想法已经不多了。

适用于第一个孩子的风格?

有没有办法将样式应用于容器的第一个(或最后一个或第n个)子项(包含子项的任何东西)? 我正在尝试自定义选项卡项的外观,以便第一个选项卡的边框半径与其他项不同。 这就是我现在拥有的:

WPF:扩展路径的正确方法?

我有一条路(看起来像一个椭圆形): 现在我想将路径的宽度和高度缩放到我喜欢的任何位置。 我找到了一个方法: 这有效,但我想知道这是否是最有效的方法呢? (我不得不引入网格和视图框来执行此操作)

从代码绑定到WinRT / UWP中的自定义附加属性

我正在尝试从一个针对多个框架(WPF,WinRT,UWP等)的库中的代码创建绑定,并且我正在打砖墙。 我想要绑定的属性是一个自定义附加属性。 在WPF中,我可以将DependencyProperty本身作为绑定路径传递: new PropertyPath(MyClass.MyAttachedProperty) 但是在WinRT中, PropertyPath类只接受一个字符串。 我试图传递属性的名称,如下所示: new PropertyPath(“(MyClass.MyAttachedProperty)”) 但当然它不起作用,因为我的类不在默认命名空间中。 在XAML中,我可以将命名空间映射到前缀并使用该前缀,但据我所知,不可能从代码中执行此操作。 有没有办法在代码中创建这个绑定?

在WPF TextBox上捕获鼠标单击

我想在TextBox上捕获鼠标点击: 现在,当用户第一次进入TextBox时,我只收到鼠标单击事件。 在此TextBox具有键盘焦点后,我不再接收鼠标单击事件。 知道如何让这个工作吗?

如何在Windows Phone 7中显示Json数据

我是Windows手机的初学者,我不知道如何从JSON字符串填充列表框。 在我的应用程序中,将有一个来自Web服务的Json String。 所以,这是我的json String [json Array]: { “type”:”ok”, “result”: { “Country”:[{ “title”:”Country-1″, “description”:”US”, “status”:”1″ }, { “title”:”Country-2″, “description”:”Australia”, “status”:”0″ }, { “title”:”Country-3″, “description”:”Brazil, “status”:”0″ } ] } } 我想在我的应用程序中的列表框中绑定它。 我真的不知道,如何在列表框中绑定。 请给我完整的xaml和c#代码。

MVVM中绑定的首选方法,Resources文件中的数据模板或View中的DataContext本身?

这个让我感到难过,因为我想到我看了一切但我必须遗漏一些东西。 我从MSDN杂志中删除了传统的MVVM模式: http://msdn.microsoft.com/en-us/magazine/dd419663.aspx 在学习MVVM的同时。 但是我通常会复制大部分代码,然后根据需要更换它,但今天我想从头开始构建一些东西,看到它可能比我想象的要多。 当我使用资源字典但直接使用datacontext时,MVVM似乎无法使用绑定。 这个问题最终想找到其他开发人员建议使用他们发现的绑定。 问题的摘要是这样的:为什么资源字典中的’DataTemplate’看起来不起作用,但直接’DataContext’方法立即用于绑定视图? 是因为我在后面的代码中使用设置视图混合了代码。 或者可能是因为别的东西。 如果我直接在View的XAML中设置’DataContext’,那么看起来我的属性和它的实现在viewmodel中设置正确,但为什么不在资源字典中呢? 我认为这种方法的优点是你可以同时设置一堆关系。 我很好奇是否需要进行其他设置才能使其正常工作。 在MVVM方法的主要示例中,他们使用数据模板很奇怪但似乎还有更多的设置它们,而不是我正在做的让它们的“绑定”工作。 什么不适合我: 我试图在主窗口xaml中做一些非常基本的东西,留下我的一些代码,使它更简单: 主窗口XAML: 主窗口代码背后: public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.WindowState = WindowState.Maximized; } private void mnuDataBoundSeriesMVVMCharting_OnClick(object sender, RoutedEventArgs e) { View.DataBoundMVVMChart c = new DataBoundMVVMChart(); dockchildren.Children.Clear(); dockchildren.Children.Add(c); } } } 资源词典: DataBoundMVVMChart.xaml的视图: ViewModel绑定到上面的View: namespace WPFTesting12_2.ViewModel […]

如何禁用TextBlock?

我希望我的TextBlock看起来已禁用(灰显),但是当我将IsEnabled属性设置为false时,没有任何反应,它会保持黑色: 这是为什么? 我也尝试使用Label但由于某种原因它的尺寸更大,所以它会弄乱我的所有布局。

在滚动结束时使用LoadMoreItemsAsync创建ListView

我在Windows Phone 8.1应用程序中有一个ListView ,我可以有1000个或更多的结果,所以每次滚动到底时我需要实现一个Load Morefunction,或者一些其他逻辑和自然方式触发添加更多列表中的项目。 我发现ListView支持ISupportIncrementalLoading ,并发现了这个实现: https : //marcominerva.wordpress.com/2013/05/22/implementing-the-isupportincrementalloading-interface-in-a-window-store-app/这是我找到的更好的解决方案,因为它没有指定类型,即它是通用的。 我对此解决方案的问题是,当ListView被加载时, LoadMoreItemsAsync运行所需的所有时间,直到获得所有结果,这意味着用户不会触发加载更多。 我不确定是什么使得LoadMoreItemsAsync触发器,但是有些东西是不对的,因为它假设当我打开页面并在现场加载所有项目时,没有我做任何事情或任何滚动。 这是实施: IncrementalLoadingCollection.cs public interface IIncrementalSource { Task<IEnumerable> GetPagedItems(int pageIndex, int pageSize); void SetType(int type); } public class IncrementalLoadingCollection : ObservableCollection, ISupportIncrementalLoading where T : IIncrementalSource, new() { private T source; private int itemsPerPage; private bool hasMoreItems; private int currentPage; public IncrementalLoadingCollection(int type, […]

在WPF XAML中禁用样式?

无论如何以程序方式关闭一个样式? 作为一个例子,我有一个链接到所有文本框的样式 我想添加一些代码来实际停止使用的样式元素,所以基本上恢复到默认的控件样式。 我需要一种方法来切换我的样式,所以我可以通过C#代码在Windows默认样式和我的自定义样式之间切换。 反正有没有这样做? 谢谢 工作方案 在WPF中切换主题