我正在开发一个使用MVVM模式的WPF应用程序,我需要显示ListView中的项目列表(使用筛选),所选项目的字段显示在主/细节视图中。 我在以下两种方式之间撕裂: 在我的ViewModel中暴露一个CollectionView,并绑定到这个。 在我的ViewModel中暴露一个普通的IList,并使用CollectionViewSource在XAML中创buildCollectionView。 有没有一个可以接受的方法呢? 任何想法的最佳途径?
我添加了一个DockPanel到RadioButton元素,这样我就可以使用100%的宽度水平分配单选button标签,文本框和button。 在DockPanel中使用LastChildFill="True"可以延伸最后一个元素。 如果文本框是面板中的最后一个孩子,这很好地工作。 但是,由于button是最后一个元素并且具有固定的宽度,所以文本框应该被拉伸。 但是,没有像2ndChildFill="True"这样的属性。 我的代码如下所示: <RadioButton HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch"> <DockPanel > <TextBlock VerticalAlignment="Center">in location:</TextBlock> <TextBox Grid.Column="1" Margin="10,0,0,0">Path string</TextBox> <Button HorizontalAlignment="Right" Margin="10,0,0,0" Padding="3,0">…</Button> </DockPanel> </RadioButton> 它给了我这个: 任何想法,提示来解决这个问题? 提前谢谢了…
如果WPF应用程序的屏幕包含很多原始控件,则其渲染变得缓慢。 在这种情况下,除了增加更less的控件和使用更强大的video卡之外,还有哪些build议的方法可以提高WPF应用程序的响应速度? 有没有办法以某种方式使用屏幕外缓冲或类似的东西?
我有一个无窗口的WPF应用程序,无论何时将窗口状态设置为最大化,都会在主显示屏上最大化它。 我想要做的就是使应用程序正在运行的最大化。 所以任何想法,我会做这个? 我现在的代码只是 private void titleBarThumb_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (this.WindowState == System.Windows.WindowState.Normal) { this.WindowState = System.Windows.WindowState.Maximized; } else { this.WindowState = System.Windows.WindowState.Normal; } }
我是WPF的新手,想做一些基本的数据绑定。 我有一个CustomObject的列表,并希望将其绑定到DataGrid。 MainWindow.xaml.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace WpfApplication1 { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); List<ArticleItem> list = […]
我最近做了一个UserControl ,花了相当长的时间,因为我不得不使用自定义的依赖属性,等等… 无论如何,这只是一堆3控件:文本框,popup与分层树。 现在我意识到我可能只能写一个ControlTemplate 。 那么使用UserControl有什么好处呢?
当只有一个可见的选项卡时,隐藏选项卡标题的最佳方法是什么? 我想完全隐藏TabControl Chrome,同时让Tab的内容可见。
我在网上find的所有设置Z-Index的文档和示例都使用了一个Canvas元素作为容器。 我的项目是在一个DataTemplate的ItemsControl容器内的边界元素。 我使用MouseEnter和MouseLeave事件来触发ScaleTransform.ScaleX和ScaleTransform.ScaleY上的animation,以便它们在徘徊时增长。 由于它们被resize并与容器中的其他项目占据相同的空间,所以最近添加的项目与旧项目(与当前resize的项目相对)重叠。 有没有一种清洁的方式,使我的animation在代码中向前移动当前项目,以便在resize时重叠所有其他项目?
在我的WPF应用程序中,我做了一些asynchronous通信(与服务器)。 在callback函数中,我最终从服务器的结果中创buildInkPresenter对象。 这要求正在运行的线程是STA,显然它现在不是。 因此,我得到以下例外: 无法在程序集[..]中创build'InkPresenter'实例。调用线程必须是STA,因为许多UI组件都需要这个。 目前我的asynchronous函数调用是这样的: public void SearchForFooAsync(string searchString) { var caller = new Func<string, Foo>(_patientProxy.SearchForFoo); caller.BeginInvoke(searchString, new AsyncCallback(SearchForFooCallbackMethod), null); } 我如何使callback – 这将做InkPresenter创build – 是STA? 或者在新的STA线程中调用XamlReaderparsing。 public void SearchForFooCallbackMethod(IAsyncResult ar) { var foo = GetFooFromAsyncResult(ar); var inkPresenter = XamlReader.Parse(foo.Xaml) as InkPresenter; // <!– Requires STA [..] }
给出以下代码: <MenuItem x:Name="MenuItem_Root" Header="Root"> <MenuItem x:Name="MenuItem_Item1" IsCheckable="True" Header="item1" /> <MenuItem x:Name="MenuItem_Item2" IsCheckable="True" Header="item2"/> <MenuItem x:Name="MenuItem_Item3" IsCheckable="True" Header="item3"/> </MenuItem> 在XAML中,是否有创build可互相排斥的可检查菜单项的方法? 用户在哪里检查项目2,项目1和3自动取消选中。 我可以通过监视菜单上的点击事件,确定哪个项目被检查,并取消选中其他菜单项来完成代码。 我想有一个更简单的方法。 有任何想法吗?