缺少WPF中的功能

时间:2009-10-14 16:30:20

标签: .net wpf

我现在已经使用WPF了一段时间,虽然我发现它一般很好,但我发现它仍然缺少许多功能。我想用这个问题来编译一个最想要的WPF功能列表,希望能提供一些解决方法。

请每个回复只发贴一个功能,以便人们可以投票。也许MS在听?

11 个答案:

答案 0 :(得分:5)

WPF似乎缺少 NotifyIcon ,我真的很想在我的WinForms应用程序中使用它。 Third-party alternatives exist使用API​​调用来设置图标,否则如果你想要NotifyIcon,则必须包含对Windows.Forms的依赖。

WPF Notifyicon from hardcodet.net

答案 1 :(得分:2)

默认情况下,工具栏中的图标不会显示为灰色。在我看来,这是一个巨大的疏忽 - 世界上任何地方的工具栏都不会使其禁用的项目变灰?

要解决此问题,您可以将此样式添加到窗口资源中:

    <Style TargetType="{x:Type Image}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type UIElement}, AncestorLevel=1}, Path=IsEnabled}" Value="False">
                <Setter Property="Opacity" Value="0.3"></Setter>
            </DataTrigger>
        </Style.Triggers>
    </Style>

答案 2 :(得分:2)

集成DeepZoom控件。

答案 3 :(得分:2)

自从我使用Visual Basic 3开始编程Windows UI之后,拖放工作没有取得进展。拥有一个xaml友好且对mvvm友好的拖放框架会很不错。类似于ICommand的东西,View可以调用ViewModel上的绑定来处理拖放。

答案 4 :(得分:1)

我真的很想念PropertyGrid控件。

答案 5 :(得分:1)

Label控件需要将其Target属性设置为明确,以便快捷方式起作用。

根据我的经验,99%的时间控件标签出现在按下快捷键时应该聚焦的控件之前。如果Label默认采用这种方式。当然,这可以通过设置Target属性来覆盖,但如果没有设置,则应该关注Tab键顺序中的下一个控件。

答案 6 :(得分:1)

去年讨论但推迟的XNA内容集成: http://channel9.msdn.com/shows/Continuum/WPF4Beta1/

答案 7 :(得分:0)

没有下拉菜单按钮。我经常发现自己需要在工具栏等中使用这个控件。任何人都可以推荐的任何好的开源下拉按钮?能够下拉任意控件的奖励点,而不仅仅是菜单。

答案 8 :(得分:0)

网格中的行/列之间没有间隙。我经常在自动调整大小的行/列中布置一个Label和TextBox / ComboBox / Checkbox控件的网格。默认情况下,这些控件都显示为彼此压扁。能够在网格中指定行和列之间的垂直和水平间隙会很好。

您可以通过为网格中的每种控件类型添加样式来解决此问题:

<Grid.Resources>
    <Style TargetType="{x:Type TextBox}">
        <Setter Property="Margin" Value="0,0,0,4" />
    </Style>
    <Style TargetType="{x:Type ComboBox}">
        <Setter Property="Margin" Value="0,0,0,4" />
    </Style>
</Grid.Resources>

但是,这样做的缺点是将TexBox和ComboBox的高度更改为默认值,并导致在相关标签中排列文本时出现问题。

答案 9 :(得分:0)

GridSplitter的行为毫无用处。

如果将GridSplitter拖放到Grid中,除非在其上设置一组属性,否则它的行为完全没用。

默认情况下,两列之间的垂直GridSplitter会在向右拖动时使两个列更小,向左拖动时两个列都会变大。 GUI历史记录中的曾经想要这种行为吗?

您可能希望网格分割器执行以下两项操作之一:调整行大小或调整列大小。这是默认行为正确的50%的可能性。但默认情况下,它既没有。

答案 10 :(得分:0)

这很容易:别名(清晰)字体。

(尽管快速浏览一下新闻,发现它主要是在.net 4的最新测试版中修复)