Tag: wpf

在WPF中,如果窗口离开屏幕,如何将窗口移动到屏幕上?

如果我有一个窗口,我怎样才能确保窗口永远不会隐藏在屏幕外? 这很重要,因为有时如果用户添加或删除监视器,如果我们记住之前的位置,窗口可能会永久隐藏在屏幕外。 我正在使用WPF + MVVM 。

有没有办法让双向MultiBinding只在一个方向上使用转换器?

我创建了一个自定义MultiValue转换器来执行一些逻辑,同时MultiBinding到TextBox; 但是我不想使用convertBack,因为绑定值没有编译时类型,默认转换完美。 这是可能的还是我必须以某种方式复制其中一个内部默认转换器的function? 图: values –> Convert() –> TextBox values <—————- TextBox 谢谢。 编辑:忘了提到我正在使用MultiValueConverter和MultiBinding,它似乎绕过默认转换器。 编辑:扩展背后的原因:我有两个对象A和B(相同类型),我想在TextBox中同时编辑。 在Convert方法中,我检查它们是否是相同的值,并显示值或默认值。 如果用户更改了TextBox中的值,我希望将相同的值发送回A和B. 编辑:我已经以迂回的方式解决了这个问题 – 请参阅下面的回复。 如果您有更好的解决方案,我仍然希望听到它。 再次感谢您的时间和帮助。

如何使用C#或XAML创建自动动画轮播图像?

我在Web开发中做了旋转木马,但是通过XAML或C#在WPF中制作动画对我来说是新的。 网上有一些例子,但它们要么已经过时,要么不是我想要的。 即使我玩其他项目的源代码,也不是我希望的。 我想让图像自动从左到右(水平)滑动。 用户无法与图像交互以停止滑动。 虽然我可以在ScrollViewer手动执行此操作,但该过程是手动的… ScrollViewer没有任何动画依赖项。 我尝试使用它来查看是否可能,但应用程序将始终崩溃。 我用的例子。 。 我尝试过的另一种尝试是将图像存储在StackPanel ,确保StackPanel是我的一个图像的宽度,然后将DispatcherTimer设置为为TranslateTransform的X属性设置动画。 但是……那没有去任何地方。 使用ScrollViewer或StackPanel并不重要。 我只是希望有类似旋转木马的效果自动转换图像。 有点像这个 我目前正在使用Visual Studio 2012和2013,如果有帮助的话。 有没有办法做到这一点?

WPF和ObservableCollection

我有一个我要显示的ObservableCollection – IRuleCondition接口由我想要显示的2个不同的类使用, RuleCondition只显示一个规则条件(诸如优先级,要检查的属性等信息),以及一个RuleConditionGroup ,可以包含2个或更多RuleConditions ,以任何条件可以匹配的方式分组,或者全部等。 在XAML中,我想知道是否有一种方法可以显示不同的ListView.ItemTemplate具体取决于它在ObservableCollection遇到的类型? 或者我需要实现两个不同的ObservableCollection ?

ObservableCollection CollectionChanged事件

我有一个可观察的集合,我有一个collectionChanged事件。 我将其项绑定到UI中的列表框。 当用户从列表框中删除UI中的某些项目时,CollectioChanged会被正确触发,但是,我需要知道已删除的项目的索引。 问题是我在更改后无法对集合进行indexOf,因为它不再具有已删除的项目.. 我们可以访问从collectionschanged事件中从ObservableCollection中删除的索引列表吗?

多行WPF FormattedText中特定字符的坐标

如何获取多行WPF FormattedText中特定字符的位置(xy坐标)? 我的文字可以包含斜体部分,粗体部分,不同的字体,不同的字体大小,不同的比对等等。我需要得到第30个字符的坐标,这可能是第3行。 通过使用Geometry中的Children(单词)的子(字母),我可以从FormattedText(BuildGeometry)构建一些半工作技巧,但这并不总是有效,因为一些字形合并在一个单个几何体(例如“fi”:仅一个几何体)。

从System.Windows.Media.Geometry获取坐标列表

给定一个System.Windows.Media.Geometry类实例,是否有一种简单的方法将其转换为轮廓和点列表? 例如,我怎么能简单地将其分解为用于自定义渲染的LineSegments列表。 FormattedText formattedText = new FormattedText( “Hello”, …); Geometry textGeometry = formattedText.BuildGeometry(new System.Windows.Point(0, 0)); 如何列出每个轮廓(其中O将是内/外圆)和每个轮廓上的每个点? 根据以下答案; var flatten = textGeometry.GetFlattenedPathGeometry(); PathFigureCollection pfc = flatten.Figures; foreach (PathFigure pf in pfc) { foreach (PathSegment ps in pf.Segments) { if (ps is LineSegment)

NotifyPropertyChanged线程安全吗?

我正在从INotifyPropertyChanged查看NotifyPropertyChanged()并注意到在Microsoft的示例中,例如: http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx 首先没有捕获委托引用(例如,它在这里说: 在事件处理程序中使用null check ) 我查看了自动生成的Reference.cs以获取我的ServiceReferences,并完成了此检查。 所以我的问题是我应该这样做(以任何forms,如扩展方法等)? 如果不这样做,是否有任何问题?

MVVM架构WPF

我在WPF中有一个MVVM架构问题。 我有View包含写一些代码或用计算机s camera. If user choose to not scan the code, I can bind扫描QRCode选项s camera. If user choose to not scan the code, I can bind s camera. If user choose to not scan the code, I can bind Command`并且没有问题。 当用户选择扫描qrcode时会出现问题。 当用户按下扫描代码时,部分屏幕正在折叠,并且摄像头显示在屏幕上。 我必须在后面的View代码中执行它,所以我在View中获得的代码在MVVM中并不好用。 这里View的代码如下: private void Scan_Click(object sender, RoutedEventArgs e) { if (_finalVideo.IsRunning) { _finalVideo.Stop(); […]

x86版本的启动速度比x64 /任何CPU都快

前段时间我注意到我的应用程序的发布版本比调试版本慢了2倍(发布时为10-12秒,调试时为4-5)。 那是因为我将平台目标设置为Any CPU for release build和x86 for Debug build。 当我将发布配置更改为x86时,两个版本都需要相同的时间来启动。 我不明白为什么将平台设置为任何CPU或x64这么大会减慢应用程序启动速度。 在我的应用程序中,我使用以下库: EF6 log4net的 Fody Autofac DevExpress WPF控件 也许使用过的库之一会减慢我的应用程序启动速度