Tag: wpf

当内容为可变高度时,列表框滚动条缩略图会更改大小

我有一个ListBox,其中显示了许多对象,每个对象可以是一个可变高度,基于每个对象具有的值的数量。 请参阅我之前回答的问题。 许多对象是5行高,而其他对象是1. ListBox中的滚动条似乎不喜欢这样,可能是由于虚拟化。 当您滚动浏览时, 滚动条上的滑块将根据当前时刻实际装入框中的项目数量来更改其大小 。 这使得拇指有时非常大,而在其他时候非常小。 由于此ListBox也包含在TabControl中,因此当您从一个选项卡切换到另一个选项卡时,ListBox通常会在您返回时滚动到其他部分。 有任何想法如何解决这样的问题? 附加信息:禁用虚拟化确实可以解决滚动问题,但代价是初始显示速度较慢。 但是,使用内部内容调整ListBox的大小会导致在水平resize时出现一些重大延迟(垂直很好),我假设这是由于我的模板宽度发生变化并需要在每个元素上重绘: 这是在字段边缘周围绘制边框以进行可视分组,其中val将拉伸到内容大小。 列表框还具有Horizo​​ntalContentAlignmment = Stretch以确保这看起来正确。 ——————- – var – opt – val – – ————- – – opt – val – – ————- – – opt – val – ——————- 注意:如果需要在另一个问题中询问,请告诉我,我会分开问题

程序集生成失败 – 引用程序集“Interop.Office”没有强名称

我有一个WPF 4项目,用于与VS2010中生成的word文档进行交互,以及一个win form User Control项目,用于将word应用程序托管到其中。 和其他com dlls。 所有的com dlls都被引用到我的主要wpf应用程序中。 我想发布我的项目,以便我可以在另一台机器上安装并执行自动更新,我得到错误:“程序集生成失败 – 引用程序集’Interop.Office’没有强名称。” 每个COM Dll的错误。 一个DLL引用(Interop.word.dll,interop.office.dll,interop.VBIDE.dll),所有这些dll也引用并用于我的wpf代码。 我发现Strong Signed Assemblies链接有相同的问题,但它没有解决问题。

WPF Datagrid根据值触发行颜色

我有一个包含数据网格的WPF应用程序。 datagrid绑定到我的对象OrderBlock,它包含一个类型为Order的List。 <DataGrid DataContext="{Binding OrderBlock}" Name="dataGridOrdersGood" ItemsSource="{Binding Orders}" 这工作正常,并在我的数据网格中很好地显示。 我的列表中有一个属性(StatusGood)虽然我想显示为一个combobox,其中只有两个值,“发送”或“保持”。 如果combobox中的值是“保持”,我希望该行变成不同的颜色。 理想情况下使用从silverlight到黄色的线性渐变。 我已经尝试了下面的代码 – 实际上只是试图将行变为红色,但没有任何反应。 我无法看到下面的代码有什么问题。 触发器部分非常接近下面代码的底部。 我是WPF的新手,目前正在努力解决这个问题。 下面的代码主要来自一个非常好的post,可以在这里找到, http://www.codeproject.com/Articles/586132/WPFvalsGrid-Custommization-using-Style-and-Templa 一如既往,任何帮助都会很棒。 谢谢M.

如何在WPF WebBrowser中使用“后退”和“前进”导航按钮事件?

WPF中的WebBrowser控件inheritance自UIElement ,但我们无法在UIElement事件中注册事件处理程序。 为什么? 在WPF WebBrowser鼠标事件没有按预期工作 ,它得到了回答,但我仍然无法理解。 无论如何,将处理程序连接到WebBrowser文档提供的事件可以捕获大多数鼠标事件,但不能使用“后退”和“前进”导航按钮事件。 由于互联网浏览器可以做到这一点,我认为这是可能的。 有什么方法可以解决这个问题吗? 更新:在这个问题中, ‘Back’ & ‘Forward’ navigation buttons意味着5键鼠标系统中的XButton1和XButton2。 更新2:我用Navid Rahmani的答案解决了这个问题。 我认为有人会需要这个答案,所以我附上了主要部分。 如果发现任何问题或更合理的解决方案,请告诉我。 //This code assumes the `WebBrowser` field named _webBrowser is already initiated. //For the detail out of this code, please refer to the Navid Rahmani’s answer. private bool _isMouseOver; private HTMLDocumentEvents2_Event _docEvent; public ctor() { _webBrowser.LoadCompleted += […]

绑定PasswordBox密码是个坏主意吗?

我已经读过, 出于安全原因, WPF PasswordBox中的密码没有用于绑定密码的依赖项属性。 尽管如此, 无论如何都有办法绑定它 。 MVVM模式的用户需要这种数据绑定; viewmodel无法在不破坏模式的情况下直接触摸PasswordBox。 在MVVM设置中使用PasswordBoxes的一种方法是将整个PasswordBox控件传递给ViewModel,但这无论如何都会破坏模式。 绑定密码可能是使用MVVM处理密码的最简洁方法。 有一个反对绑定密码的论据,因为这会将明文密码保存在未加密的内存中,直到它被垃圾收集。 但是,我看到它的方式是,从您访问Password属性的那一刻起,密码就会存储在未加密的内存中。 这个观点(或类似的)似乎在这个问题上得到了支持 。 当然,它会在没有约束力的情况下在更短的时间内存在(不是登录forms有长期存在的倾向),但风险仍然存在。 鉴于这些论点,绑定密码真的是一个坏主意吗? 为什么?

使用单击一次部署时的安装问题

我有一个Wpf应用程序,我希望它部署在远程服务器上。 以前我使用过VS2010,所以很容易创建setup / .msi文件并在其他机器上部署。 目前我有VS2012。 它没有设置部署选项。 另外,我阅读了有关部署应用程序的clickonce应用程序部署方法。 我尝试了一种方法,但它没有在本地本身正确安装应用程序。 应用程序快捷方式首次启动应用程序(很少第二次启动)。 下次,它会抛出我的exception “Cannot start application”. Application cannot be started. Contact the application vendor 错误详情如下: ERROR DETAILS Following errors were detected during this operation. * [29-01-2014 11:32:48] System.Deployment.Application.DeploymentException (Activation) – Activation failed. – Source: System.Deployment – Stack trace: at System.Deployment.Application.ComponentStore.ActivateApplication(DefinitionAppId appId, String activationParameter, Boolean useActivationParameter) at System.Deployment.Application.SubscriptionStore.ActivateApplication(DefinitionAppId appId, […]

从代码中滚动WPF FlowDocumentScrollViewer?

我有一个FlowDocumentScrollViewer我想在添加文本时自动滚动到底部。 在代码中我向段落添加了内联,但是当有很多文本时,我希望能够简单地使用代码向下滚动而不是让用户这样做。 有什么建议?

c#wpf – 无法同时设置DisplayMemberPath和ItemTemplate

我想在listboxItem中添加工具提示,但是当有DisplayMemberPath时它会启动问题。 错误信息说:无法同时设置DisplayMemberPath和ItemTemplate。 当我删除DisplayMemberPath时,每个列表项中的工具提示都有效。 但我不想删除DisplayMemember因为我需要它。 如何解决这个问题呢?

WPF强制重绘canvas

好的,在Windows窗体中,您可以使用.refresh()在元素上生成重绘事件。 WPF中是否有类似的解决方案? 解释我正在做什么,我在canvas对象上绘制一个迷宫,并希望看到迷宫被绘制(所以我可以看到进展),而不是等待28分钟突然出现的解决方案。 我在canvas上用一系列Rectangle绘制块。 刷新应该在矩形还是canvas上? 这是最近的输出: http : //imgur.com/ftFOv 如果可能的话,我想在c#中找到解决方案。 谢谢。

带项目/数据模板的WPF自定义控件

我知道如何在WPF中创建自定义用户控件但是如何才能使某人能够提供ItemTemplate? 我有一个用户控件,它是几个其他WPF控件的混合,其中一个是ListBox。 我想让控件的用户指定列表框的内容,但我不知道如何传递该信息。 编辑:接受的答案适用于以下更正: