Tag: xaml

停止ItemsControls共享filter

我有两个ItemsControl,一个是ListView,另一个是我正在开发的自定义控件。 我已将两个控件的ItemsControl.ItemsSource属性设置为相同的IEnumerable对象,在本例中为List。 我将filter应用于我的自定义控件的ItemsControl.Items属性(this.Items.Filter = myFilter),我的控件按预期刷新,仅显示与filter匹配的项目。 但是,ListView使用与ItemsControl.ItemsSource属性相同的IEnumerable对象也会刷新,仅显示与我应用于自定义控件的filter匹配的项目。 任何人都可以告诉我如何保持我的自定义控件中的filter不影响我的列表视图中的项目?

无法在后面的代码中设置图像源

关于在后面的代码中设置图像源有很多问题和答案,例如在代码中设置WPF图像源。 我已经按照所有这些步骤进行操作,但却无法设置图像。 我在VS2010中使用WPF C#进行编码。 我将所有图像文件放在名为“ Images ”的文件夹下,所有图像文件都设置为Copy always 。 按照文档中的说明,“ 构建操作”设置为“ 资源” 。 我的代码如下。 我在XAML中设置了一个dog.png并将其更改为后面代码中的cat.png 。 // my XAML // my C# BitmapImage img = new BitmapImage(); img.UriSource = new Uri(@”pack://application:,,,/FooApplication;component/Images/cat.png”); imgAnimal.Source = img; 然后我得到一张空虚的空白图像。 我不明白为什么.NET会使图像设置如此复杂…… [编辑] 以下是有效的 imgAnimal.Source = new BitmapImage(new Uri(@”pack://application:,,,/FooApplication;component/Images/cat.png”)); 它有效,但我看不出这两个代码有什么区别。 为什么早先不起作用而后者呢? 对我来说他们是一样的..

在WPF中绑定Setter属性的值

我整天都在寻找一种在ComboBox上显示默认文本字符串的方法,而我设法找到的最接近的工作是使用水印的示例。 当我的应用程序打开时, ComboBox的Visibility属性设置为Collapsed,然后通过命令显示。 不幸的是,我无法让水印效仿。 这是我正在使用的: {Binding Visible}即使窗口中的其他控件绑定到它并且行为正常也没有任何效果。 和viewmodel中的Visible属性: public Visibility Visible { get { return _visibile; } set { if (_visibile == value) return; _visibile = value; RaisePropertyChanged(() => Visible); } } 如何使样式中的setter表现并注册绑定? 如果您需要其他代码,我很乐意提供。 更新: Snoop在TextBlock的Visibility属性上显示绑定错误。 在DataContext选项卡上,它显示“object is null”。 我一直在寻找解决这个问题的方法,但我一直无法弄清楚如何解决这个问题。 如果有人能够把我推向正确的方向,我当然会很感激。 代码来自这里http://archive.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=PierreCode&ReleaseId=3546 我不一定要寻找完整的演练,只需要足够的建议来指导我解决问题。

什么可能导致这个内存问题?

我正在为Windows Phone 8开发应用程序,我遇到了内存泄漏问题。 但首先是一些背景。 该应用程序(不幸的是)使用WebBrowsers作为页面。 页面非常复杂,涉及很多javascript。 应用程序的本机部分用c#编写,负责与javascript进行一些简单的通信(例如,native是javascript与服务器通信的委托),制作用于页面转换,跟踪,持久性等的动画。是在一个独特的PhoneApplicationPage中完成的。 在我因内存不足exception而崩溃之后,我开始分析应用程序。 我可以看到WebBrowsers,它是应用程序的重要组成部分,正在正确处理。 但我看到的问题是内存不断增加。 更糟糕的是,我对分析器的反馈很少。 根据我的理解,分析器图表说存在一个大问题,而分析器数据表明根本没有问题…… 注意:该步骤表示从WebBrowser到另一个WebBrowser的导航。 通过两个控件之间的动画创建(我猜)尖峰。 在我在图像中选择的范围中,我正在向前导航,一个向后导航,最多有5个WebBrowsers(2个用于总是存在的菜单,1个用于索引页,1个用于我导航的页面和1个对于我导航到的页面)。 在每个导航中,探查器显示正确数量的WebBrowsers:向前导航后为5,向后导航后为4。 注2:我添加了红线,以便更清楚地知道内存在这段时间内会上升 从图像中可以看出 内存使用量相当大,但数字显示它很低,在这段时间内,保留分配低于启动时… 我希望我已经包含了足够的信息。 我想知道可能导致这个问题的一些想法。 我到目前为止的想法是: – WebBrowser中的javascript做错了(例如没有清理一些事件处理程序)。 即使是这种情况,WebBrowser也不应该在销毁时释放内存吗? – 使用一个独特的PhoneApplicationPage是不应该做的邪恶,改变它的结构可能会导致这种情况。 -其他? 另一个问题:为什么图表显示正确的内存使用量而数字没有? 如果您需要有关探查器的更多信息,请询问,我将在明天发布。

什么是wpf中的视觉状态? 谁知道如何开始理解和使用它?

什么是wpf中的视觉状态? 谁知道如何开始理解和使用它? 也许就像一个完整的教程,因为我以前从未接触过视觉状态。 或者只是一个简单的示例代码 是啊

在可见性更改时激活故事板

目前我有一个Image ,它在加载时会发出脉冲。 当我改变图像的可见性时,我想要激活故事板。 但是我看到Image.Triggers必须是EventTriggers 。 我需要加入哪个事件?

如何在StackPanel或ListView中叠加项目?

我正在制作一个纸牌游戏,我想在玩家的手中显示半张相互覆盖的牌。 如何使用ListView或StackPanel执行此操作? 这是一个如何显示玩家手牌的示例。 UPDATE 我为ListView的ItemContainerStyle设置了边距并且它有效,但我有另一个问题。 ListView项目的宽度不适合图像,并且有一些间距。 我该如何删除它。 请参阅XAML代码下方的图像。

如何在XAML中使用已定义的画笔资源,来自C#

到目前为止,我有这个 现在,我想在按下一个键时访问这个定义的资源,并用C#中的KeyDownBrush替换当前对象。 我已经尝试了这个.Resource.Contains(“KeyDownPress”)并且能够返回True,所以我认为我几乎在那里,但我不确定如何访问该对象并将其正确解析为Brush实例。 任何指导将不胜感激。

Listbox IsSynchronizedWithCurrentItem导致选择第一个项目,即使它没有告诉它这样做

我遇到了一些可能是wpf列表框中的错误的东西。 请查看代码然后我解释会发生什么 窗口 用户控制 select all 用户控制背后的代码 public partial class MultiSelectionComboBox : ComboBox { #region fields, dependencies, command and constructor private ListBox listBox; private ItemsControl itemsControl; private CheckBox checkBox; public static readonly DependencyProperty ASLSelectedItemsProperty = DependencyProperty.Register(“ASLSelectedItems”, typeof(ObservableCollection), typeof(MultiSelectionComboBox), new PropertyMetadata(null)); public static readonly DependencyProperty ASLDisplayMemberPathProperty = DependencyProperty.Register(“ASLDisplayMemberPath”, typeof(string), typeof(MultiSelectionComboBox), new PropertyMetadata(“Description”)); public MultiSelectionComboBox() { InitializeComponent(); […]

绑定属性声明为接口vs类类型时,WPF绑定行为是否不同?

这开始于我认为与我的ToString()实现相关的奇怪行为,我问了这个问题: 当ToString()有一个协作对象时,为什么WPF数据绑定不显示文本? 事实certificate它与协作者无关,并且可以重现。 当我将Label.Content绑定到声明为接口类型的DataContext的属性时,在运行时对象上调用ToString() ,标签显示结果。 当我将TextBlock.Text绑定到同一属性时,永远不会调用ToString()并且不显示任何内容。 但是 ,如果我将声明的属性更改为接口的具体实现,它将按预期工作。 这是不是设计? 如果是这样,任何想法为什么? 重现: 创建一个新的WPF应用程序(.NET 3.5 SP1) 添加以下类: public interface IFoo { string foo_part1 { get; set; } string foo_part2 { get; set; } } public class Foo : IFoo { public string foo_part1 { get; set; } public string foo_part2 { get; set; } public override string […]