小编Dav*_*mer的帖子

WPF:样式基于另一个在单独的程序集中

程序集A - ResourceDictionary包含StyleA样式.
程序集B - ResourceDictionary.MergedDictionaries将程序集A中的资源合并到B.

我想在Assembly B"基于"StyleA创建一个样式.可能吗?

我正在尝试创建这种风格:

<Style x:Key="StyleB" BasedOn="{StaticResource StyleA}">
   <Setter Property="Button.Foreground" Value="Khaki"/>
</Style>
Run Code Online (Sandbox Code Playgroud)

但是如果我使用StyleB,我在运行时会得到一个XamlParseException异常:

无法将属性"Style"中的值转换为"System.Windows.Style"类型的对象.只能基于具有基本类型"IFrameworkInputElement"的目标类型的Style.标记文件'SamSeekApp; component/mainwindow.xaml'中对象'System.Windows.Controls.Button'出错

wpf resources styles resourcedictionary mergeddictionaries

19
推荐指数
1
解决办法
1万
查看次数

WPF:什么是通用容器控件?

在HTML中,通用容器控件是DIV.它本身并没有做任何事情,但它却是一个很好的地方.

同样在WinForms中,通用容器控件是Panel.再次,这是我将用作占位符以后加载其他控件.

我应该为WPF使用什么?

wpf controls containers

19
推荐指数
2
解决办法
1万
查看次数

在WPF中动态更改样式

有没有办法在WPF中动态更改(并应用)样式?

假设我在XAML中声明了样式:

    <Style TargetType="local:MyLine" 
           x:Key="MyLineStyleKey" x:Name="MyLineStyleName">
        <Setter Property="Fill" Value="Pink"/>
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="true">
                <Setter Property="Fill" Value="Blue" />                    
            </Trigger>
        </Style.Triggers>
    </Style>
Run Code Online (Sandbox Code Playgroud)
  1. 在一个时刻,我需要改变Pink颜色,来,比方说Green,与风格都行MyLineStyleKey成了绿色.一条线在发布时为粉红色,选择时为蓝色......现在,我需要更改未选择的属性(粉红色为绿色)...,所以这不仅仅是将其设置为其他颜色,即触发器(选择>蓝色) )将不再工作......这可能吗?怎么样?

  2. 是否可以样式中的粉红色颜色绑定到Button背景,这将反映当前使用的样式颜色?

编辑:
对于1我想:

Style s = (Style)this.Resources["MyLineStyleKey"];

(s.Setters[0] as Setter).Value = background;
(s.Setters[1] as Setter).Value = background;
Run Code Online (Sandbox Code Playgroud)

但发生了一个例外:

在使用'密封''SetterBase'后,它无法修改.

wpf styles

19
推荐指数
2
解决办法
3万
查看次数

在样式的代码背后的BasedOn ="{StaticResource {x:Type TextBox}}"

如何在代码中设置以下内容?

<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
Run Code Online (Sandbox Code Playgroud)

我正在使用App.xaml中合并的主题.它适用于所有控件,但是当我为某些东西定义样式时,例如TextBox,除非我BasedOn像上面一样使用主题样式,否则它将获得默认TextBox样式.

现在我正在创建一个DataGridTextColumn代码背后,我无法让它的BasedOn部分工作EditingElementStyle

Style editingStyle = new Style(typeof(TextBox));
editingStyle.BasedOn = ...?;
Run Code Online (Sandbox Code Playgroud)

有什么建议?此外,有没有办法获得主题样式而不是使用默认样式而不使用BasedOn?

谢谢

c# wpf xaml styles basedon

19
推荐指数
2
解决办法
1万
查看次数

如何像讲话泡泡一样设置WPF工具提示的样式?

我想塑造我的WPF工具提示,如下图所示:

在此输入图像描述

我该如何实现这一目标?

wpf xaml styles tooltip

19
推荐指数
1
解决办法
2万
查看次数

使用WPF在虚拟化TreeView中选择节点

有没有办法在虚拟化TreeView中手动选择节点然后将其带入视图?

我在TreeView中使用的数据模型是基于VM-MV模型实现的.每个TreeViewItem的IsSelected属性绑定到ViewModel中的对应属性.我还为TreeView的ItemSelected事件创建了一个监听器,我为所选的TreeViewItem调用了BringIntoView().

这种方法的问题似乎是在创建实际的TreeViewItem之前不会引发ItemSelected事件.因此,启用虚拟化后,节点选择将无法执行任何操作,直到TreeView足够滚动,然后在最终引发事件时"神奇地"跳转到所选节点.

我真的很喜欢使用虚拟化,因为我的树中有数千个节点,并且在启用虚拟化时我已经看到了相当令人印象深刻的性能改进.

c# wpf treeview mvvm

18
推荐指数
2
解决办法
1万
查看次数

wpf窗口全黑

我在一台客户机器上销售一个WPF应用程序(几百个),整个应用程序窗口是黑色的,任何人都知道发生了什么?

该机器运行的是带有.net 3.5SP1的Windows XP,图形适配器是带有两个显示器的GeForce 6200(禁用一个显示器无法解决问题).

将"兼容性设置"设置为"256色"可以解决问题(但这不是一个可行的解决方案,我需要更多的颜色让应用看起来不错).

该应用程序是yaTimer(http://www.nbdtech.com/yaTimer/),它具有基于本文所述技术的自定义窗口镶边http://blogs.msdn.com/wpfsdk/archive/2008/09/ 08/custom-window-chrome-in-wpf.aspx在"Office 2007 without Aero"部分中.

如果有人能给我一个关于发生了什么的线索,我将非常感激.

谢谢.

wpf window

18
推荐指数
2
解决办法
9062
查看次数

适用于大型内容的WPF Multiline TextBox

在WPF应用程序中,我想构建一个"在文件中查找"输出窗格,在该窗格中我可以流式传输大量文本,而无需在每行重新分配内存,就像TextBox那样做.

WPF TextBox有一个Text属性,用于存储连续的字符串.每次,我想添加内容,我需要做textBox.Text += "New Text",这是不好的.

理想情况下,该控制将是虚拟的,只需要最少的资源,仅用于可见线.

我想过使用一个标准的ListBoxVirtualizingStackPanel,但它不允许跨行文本选择.

(在添加的每个新行中,我希望控件更新)

有什么建议吗?

c# wpf textbox multiline

18
推荐指数
2
解决办法
3万
查看次数

从DataTemplateSelector显式刷新DataTemplate?

我将ContentControl.DataTemplateSelector设置为我想要的.
我希望根据命令或其他任何东西,调用ContentControl以通过xaml或代码从选择器重新选择模板.

谢谢

wpf xaml datatemplate contentcontrol datatemplateselector

18
推荐指数
4
解决办法
1万
查看次数

如何使用正确的Windows系统颜色?

我想使用XAML设置WPF按钮的样式,使其看起来像这些Windows 7通知区域弹出窗口的"混音器"和"更改日期和时间设置......"文本.

SystemColors的属性是否定义了该颜色?哪一个?

<Setter Property="Foreground"
        Value="{DynamicResource {x:Static SystemColors.????}}" />
Run Code Online (Sandbox Code Playgroud)

Windows 7通知区域弹出窗口

windows wpf xaml styles

18
推荐指数
2
解决办法
1万
查看次数