如何在一个按钮的控制模板中把TemplateBindings改为Bindings,而不重复整个控制模板
我想在其正常的,摩托的状态和按压状态下更改按钮的背景颜色,为各种绿色阴影.我被迫将以下怪异的冗长Button.Template添加到我的按钮中,以便我可以修改RenderMouseOver>和RenderPressed属性要使用Binding而不是TemplateBinding,以便我的触发器(在Button.Style中)实际上是生效的,而不是由于TemplateBinding的编译时间性质而被忽略.无论如何,是否可以更干净地覆盖这两个属性,而不是重复整个模板绑定的整个模板? XAML下面:
16 2024-04-26
编程技术问答社区
在WPF中改变动态创建的按钮的背景
我有以下代码,可以动态创建并添加一个按钮: StackPanel topPanel=...; Button button=new Button(); button.Content="New Button "+topPanel.Children.Count; // Set button background to a red/yellow linear gradient // Create a default background brush var bgBrush=new LinearGradientBrush(new GradientStopCollection( new GradientStop[] {new GradientStop(Color.FromRgb(255,255,200),0.5), new GradientStop(Color.FromRgb(255,200,200),0.5)})); //
12 2024-04-24
编程技术问答社区
WPF DotNET应用程序将在调试模式下运行,但.EXE将不会运行。
我在C#中使用VS 2010编写了WPF应用程序.该应用程序将使用Visual Studio在调试模式下运行良好,但是当我从BIN \ Release Folder运行.EXE时,什么也不会发生.我没有从Windows那里收到任何错误消息,VS中没有错误或警告.我试图在没有运气的情况下(以各种可能的顺序)建立,重建和清洁解决方案.我的解决方案包含2个项目,两者都使用.NET 4.0框架,并且我在PC上安装了.NET 4.0.我已经尝试了XP和Win7,但仍然没有. 我还注意到,在调试模式下运行应用程序时,调试的输出说:"每个.dll之后都无法找到或打开PDB文件". . 我每次都将其编译到发布文件夹中,但是我确实尝试将其更改为调试文件夹并清洁/重建只是为了查看是否会有所作为,但它没有,所以我更改了它,重新尝试了一下,仍然什么都没有. 有什么想法? 解决方案 以下是想到的几个想法 如果您在X64机器上,请尝试将应用程序从AnyCPU更改为X86.这是在调试
4 2024-04-18
编程技术问答社区
WPF哨兵对象以及如何检查内部类型
当你们中的某些人发现时,出现了一个新功能(?),wpf 4,数据绑定引擎可以通过类的自定义控制实例 ms.internal.internal.internal.nementer.nemedobject ,名称为"" {disconnectedItem} "进入dataContext - 而不是代码所期望的数据项(这会在其itemScontrol断开模板控件时发生).这些称为Sentinel对象. 在现有代码中,这可能会导致伪造的例外情况,而代码没有准备就绪.这些可以被数据绑定子系统吞噬,也可以造成破坏.密切注意您的调试控制台. 无论如何,我在此MSDN论坛. And there's a post by Sam Bent which 解释了这一切.现在去阅读,您需要知道此.本质是,这些事件永远不应该被解雇(这就是错误),所以: 如果 DataContext是哨兵对象. 所以,我想检查我的dataContext.但是如何?考虑: public bool IsSe
8 2024-04-17
编程技术问答社区
如何使用WPF 4的WinRT转换功能
我想将新的Metro过渡(addeleteThemetransition,ContentThemetrantition,...)用于我的WPF 4项目. 我可以使用DLL吗?我在哪里可以下载? 解决方案 winrt/XAML与WPF不同,其Winrt UI都不会与WPF一起使用.此外,这些过渡似乎使用了与常规故事板不同的机制,因此可能没有办法将它们提取到可以与WPF一起使用的东西中. 您唯一的选择是自己实施某些东西并使其看起来不错.或者放弃对Windows 7的支持,并将您的应用程序作为Windows 8的Winrt应用程序实现.
10 2024-04-16
编程技术问答社区
WebBrowser控件WPF中的脚本错误
当Am在WebBrowser控件上使用wpf时,即使在这里粘贴了屏幕截图,甚至一些JQUERY UI和CSS都无法正常工作 解决方案 我也面临着这个问题.我需要创建网络具有大量jQuery,json等和WebBrowser Control的浏览器应用程序无法正常工作(我正在使用Windows 10和Visual Studio 2015) 作为解决方案,我使用 cefsharp.github.io ,它允许我嵌入完整的标准 - complatess-claintards-claintards-complaint Web浏览器进入C#或VB.NET项目解决方案,而无需黑客入侵Windows注册表密钥.它基于铬嵌入式框架.它像魅力一样工作! 只需获取Nuget软件包并创建Chromiumwebbrowser类,就可以使用它. 其他解决方案 您必须更改WebBrowser渲染引擎,默认情况下它使用了最古老的引擎. 在此链接中,Microsoft描述了如何完成:
12 2024-04-16
编程技术问答社区
在一个文本框上用StringFormat绑定到一个双数
我正在使用wpf的文本框,并在文本属性上绑定了我的ViewModel上的双重. 我的XAML看起来像这样: 不幸的是,当我将UpdateSourCetrigger切换到属性交换并键入Value 12345时,我会得到12,354.00( eding :注意4之前的5个).这是由于.net formatter在2和3之间添加,后,将光标保持在同一位置. 如何将StringFormat与updatesOurCetrigger设置为属性交换? 注意:这仅在.net 4. 中发生 解决方案 通常您不希望UpdateSourceTrigger在TextBox.Text上PropertyChanged绑定,因为这会触发验证和每次按下键时更改通知. 如果您仅执行
16 2024-04-15
编程技术问答社区
如何在WPF中增长/缩小一个TextBlock(字体大小)的可用空间?
我已经看到这个问题,与我想要的相反.虽然其他人希望根据文本的大小进行控制自身,但我试图弄清楚是否有办法将文本大小增长到可用的空间量. 以数字时钟窗口的想法,您希望数字根据时钟所在的窗口的大小来表示时间(或收缩).如果没有任何方法可以自动执行任何指针以程序化的方式,我可以完成这项工作? 解决方案 WPF ViewBox控件将在可用空间中生长/收缩其内容: http://www.wpftutorial.net/viewbox.html 只需将您的文本块放在视图框中: 当然,您的查看框通常由其容器缩放,但希望您明白了!
10 2024-04-12
编程技术问答社区
UI自动化事件在监控一个应用程序一段时间后停止接收,然后在一段时间后重新启动
我们正在使用Microsoft的UIAUTomation框架来开发一个客户端,该客户端监视特定应用程序的事件并以不同的方式响应它们.我们已经从框架的托管版本开始,但是由于延迟问题,转移到了用 uiacomwrapper .在我们(大规模)WPF应用程序内部的性能问题之后,我们决定将其移至单独的终端应用程序(通过UDP将事件传输到我们的WPF应用程序),该应用程序似乎可以解决所有性能问题.唯一的问题是,似乎每隔几分钟,TabSelection的事件,结构化,窗帘和窗帘停止捕获几分钟.出乎意料的是,在发生这种情况时,仍会收到和处理房地产的事件.我将发布我们事件监视器的相关代码,但这可能是无关紧要的,因为我们在使用Microsoft自己的Accevent实用程序时已经看到了类似的行为.我也无法发布受监视应用程序的代码,因为它也是专有和机密的,我可以说这是一个载有WPF Windows且相当大的Winforms应用程序. 有没有人在使用UI自动化框架时看到这种行为? 谢谢你的宝贵时间. 这
8 2024-04-12
编程技术问答社区
可观察到的集合和BindingList之间的区别
我想知道ObservableCollection和BindingList之间的区别P> 为什么我要选择以下一个? ObservableCollection lstEmp = new ObservableCollection(); 或 BindingList lstEmp = new BindingList(); 解决方案 ObservableCollection可以像任何集合一样从UI中更新.真正的区别相当简单: ObservableCollection实现INotifyCollectionChanged在更改集合时提供通知(您猜测^^) 它允许绑定引擎更新时更新UI. 但是,BindingList实现IBindingList. IBindingList提供有关收集更改的通知,而不仅仅是这样.它提供了一大堆功能,UI可以使用这些功能来提供更多的功能,而不是
8 2024-04-10
编程技术问答社区
为什么我不能在WPF 4.0中应用Aero主题来设计一个控件的样式?
我最近将一个项目从WPF 3.5转换为WPF 4.0.从功能上讲,一切都起作用,但是我在Aero主题之上应用的DataGrid样式突然停止了工作.从下面的图像中/之后,您可以看到,我的数据杂志从拥有Aero外观,大胆的标题,额外的填充和交替的行格式到只是看起来" Aero".除了删除对WPF工具包的所有引用(由于数据杂志现在是WPF 4.0的本地),我真的没有更改有关我的代码/标记的任何内容. (WPF Toolkit DataGrid) > (.net 4.0 datagrid) 在 As I learned in 较早的问题,如果我停止引用Aero Resource Dictionary,我就可以使自定义的数据杂志再次工作,但是随后所有内容在Windows XP上看起来" Luna"(这不是我想要的). 那么,我如何确保我的应用程序始终使用Aero主题,但是在WPF 4.0 ?? 中仍在该主题之上应用样式 这是我的app.xaml代码:
12 2024-01-07
编程技术问答社区
绑定到接口类型的属性
我只是被WPF中的另一个具有绑定的奇数所咬伤.考虑以下类及其IStupid键入属性,称为MyStupid: public struct DumbClass { public IStupid MyStupid { get { return new IsStupid(); } } } public interface IStupid{} public class IsStupid : IStupid{} 现在考虑以下绑定到ListBox: var items = new List(new []{new DumbClass(), new DumbClass(), new DumbClass()}); OptListBox.ItemsSource = items; XAML没有什么特别的:
20 2024-01-05
编程技术问答社区
[WPF]如何在画布上画一个网格?
如何绘制以下图表作为从画布 - 系统UI元素继承的自定义画布的背景? 感谢您的任何有用的链接. 解决方案 您只需将Canvas.Background设置为DrawingBrush.该刷子只需使用矩形(使用一些RectangleGeometry)就需要呈现.由于支持TileMode,我们可以沿水平和垂直轴重复此矩形,并为您提供完整的网格:
90 2024-01-05
编程技术问答社区
WPF哨兵对象以及如何检查内部类型
当你们中的某些人发现时,出现了一个新功能(?),wpf 4,数据绑定引擎可以通过类的自定义控制实例 ms.internal.internal.internal.nementer.nemedobject ,名称为"" {disconnectedItem} "进入dataContext - 而不是代码所期望的数据项(这会在其itemScontrol断开模板控件时发生).这些称为Sentinel对象. 在现有代码中,这可能会导致伪造的例外情况,而代码没有准备就绪.这些可以被数据绑定子系统吞噬,也可以造成破坏.密切注意您的调试控制台. 无论如何,我在此MSDN论坛. And there's a post by Sam Bent which 解释了这一切.现在去阅读,您需要知道此.本质是,这些事件永远不应该被解雇(这就是错误),所以: 如果 DataContext是哨兵对象. 所以,我想检查我的dataContext.但是如何?考虑: public bool IsSe
12 2024-01-04
编程技术问答社区