小编Dav*_*mer的帖子

单击主应用程序窗口时,如何聚焦模式WPF窗口

我有我的MainApplication窗口,它启动一个带有.ShowDialog()的新窗口,以便它是模态的.

UploadWindow uploadWindow = new UploadWindow();
uploadWindow.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

现在用户经常打开这个窗口,它可能会在其他窗口下丢失.单击MainApplication时,您会收到类似错误的蜂鸣声,并且无法与它进行交互,因此模态窗口会按预期正确阻塞,但如果模式窗口在此时聚焦以向用户显示它,则会很好还开着.

目前看起来好像MainApplication窗口已经锁定.

c# wpf window

13
推荐指数
1
解决办法
6971
查看次数

如何让UserControl伸展以填充分配的空间?

在630 x 400窗口中,我正在加载XAML元素:

  • 菜单在顶部
  • 动态用户控制
  • 底部的页脚

问题是,当我设置UserControl的背景时,颜色只会下降到内容.我希望UserControl的背景当然涵盖整个UserControl.我试过了:

  • VerticalContentAlignment = UserControl中的 "Stretch"
  • VerticalConignment = UserControl中的 "Stretch"
  • VerticalContentAlignment = MainView中的 "Stretch"
  • VerticalAlignment = MainView中的 "Stretch"

但颜色仍然拒绝下降.我不想设置固定宽度,因为用户可以增加应用程序的大小.

如何获取UserControl的背景颜色以填充UserControl的整个区域而不仅仅是其内容的区域?

PageItemOptionsView.xaml:

<UserControl x:Class="TestMenu234.Views.PageItemOptionsView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             VerticalContentAlignment="Stretch"
             VerticalAlignment="Stretch"
             Background="#ddd">
    <StackPanel Margin="10">
        <TextBlock Text="This is the options area."/>
        <Button Content="Click to go to the Manage Customers page."
                    Width="200"/>
    </StackPanel>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

MainView.xaml:

<Window x:Class="TestMenu234.Views.MainView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:c="clr-namespace:TestMenu234.Commands"
    xmlns:vm="clr-namespace:TestMenu234.ViewModels"
    xmlns:v="clr-namespace:TestMenu234.Views"
    Title="Main Window" Height="400" Width="630" MinWidth="630">
Run Code Online (Sandbox Code Playgroud)

...

    <DockPanel LastChildFill="False">

        <Menu DockPanel.Dock="Top">
            <MenuItem 
                Header="Pages" ItemsSource="{Binding AllPageItemViewModels}"
                      ItemTemplate="{StaticResource CodeGenerationMenuTemplate}"/> …
Run Code Online (Sandbox Code Playgroud)

wpf xaml autosize

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

Gridsplitter拉伸限制 - WPF

我想在像素数量上设置一些限制/边界,我们可以拉伸网格内的网格划分器控件.这怎么可能?基本上不应该允许将网格划分器拉到很大的限制(它应该限制在较小的网格边界)

wpf gridsplitter

13
推荐指数
1
解决办法
5959
查看次数

什么是避免WPF PRISM/MVVM应用程序中的内存泄漏的最佳方法

我有一个基于PRISM的WPF应用程序,它使用MVVM模式.

我注意到偶尔我的视图模型,视图以及与它们相关的所有内容将在其预期寿命之后很久就会出现问题.

一个泄漏涉及在属于注入服务的集合上订阅CollectionChanged,另一个涉及不在DispatcherTimer上调用Stop方法,而另一个泄漏需要清除它的项目.

我觉得使用CompositePresentationEvent可能比订阅CollectionChanged更可取,但在其他场景中,我倾向于实现IDisposable并让视图在视图模型上调用Dispose方法.

但是后来需要告诉视图什么时候在视图模型上调用Dispose,当视图的复杂性增加时,它会变得更具吸引力,并且它们开始包含子视图.

您认为处理视图模型的最佳方法是什么,以确保它们不会泄漏内存?

提前致谢

伊恩

wpf memory-leaks prism mvvm

13
推荐指数
1
解决办法
9744
查看次数

如何在代码后面展开WPF树视图的所有节点?

我可能会遇到星期一的愚蠢,但是在我将它们添加到后面的代码中后,我找不到扩展所有树视图节点的好方法(比如treeView.ExpandAll()).

有什么快速帮助?

c# wpf treeview expand

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

更改焦点和滚动时,带有IsVirtualizing ="true"的WPF TreeView会跳转

我已经做了一个简单的例子来重现我遇到的问题TreeView.如果我选择了一个项目TreeView,向下滚动,更改Focus,然后TreeView再次选择一个项目,列表开始跳转.

只有我有这种情况才会发生VirtualizingStackPanel.IsVirtualizing="True".这是一个已知的问题吗?有工作吗?

所以重现:

  1. 在列表中选择项目1.
  2. 向下滚动到列表底部
  3. 单击顶部的TextBox.
  4. 在列表中选择项目30

我正在使用.Net 3.5 SP1,我已经尝试过64位XP和Vista.我没有在其他环境上尝试过.

更新: 我已经在.Net 4.0 Beta中测试过,但问题并未发生.某处有修补程序吗?


<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <TextBox Grid.Row="0"></TextBox>

        <TreeView Grid.Row="1"
                  VirtualizingStackPanel.IsVirtualizing="True"
                  VirtualizingStackPanel.VirtualizationMode="Standard"
                  >          
            <TreeView.Items>
                <TreeViewItem Header="Header 1" IsExpanded="True">
                    <TreeViewItem.Items>
                        <TreeViewItem Header="Item 1" />
                        <TreeViewItem Header="Item 2" />
                        <TreeViewItem Header="Item 3" />
                        <TreeViewItem Header="Item 4" />
                        <TreeViewItem Header="Item 5" />
                        <TreeViewItem Header="Item 6" />
                        <TreeViewItem Header="Item 7" />
                        <TreeViewItem Header="Item 8" …
Run Code Online (Sandbox Code Playgroud)

wpf treeview scroll focus virtualizingstackpanel

13
推荐指数
1
解决办法
3088
查看次数

WPF,你能获得默认的窗口颜色吗?

好的,这是一个垒球初学WPF问题.

默认情况下,窗口的背景为白色.我正在尝试破解错误报告表单,我想模仿更标准的Windows外观和感觉.

获取背景的默认颜色的任何简单方法?

.net wpf colors

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

如何以延迟打开WPF弹出窗口?

我只是想延迟打开WPF Popup,有点像ToolTip.

我怎样才能做到这一点?

顺便说一下,Popup.PopupAnimation = PopupAnimation.Fade ......过快地消失了.我想在那里至少半秒钟.

wpf popup delay wpf-controls

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

来自字符串的DependencyProperty

如何将属性名称(在字符串中)转换为DependencyProperty

我有一组属性名称,其值以字符串和a表示DependencyObject.现在我想将这些属性值设置为DependencyObject.有关如何实现这一点的任何想法?

谢谢.

c# wpf xaml dependency-properties dependencyobject

13
推荐指数
1
解决办法
6558
查看次数

在TabItem中加载UserControl

我有一个Usercontrol(TabUserControl),其中包含一个TabControl.UserControl的Viewmodel加载了Ob Obtable的TabItems集合.这些项目是另一个用户控件.当我只在tabcontrol中加载文本时没有问题,但是如何将其他用户控件加载到TabUserControl的tabitem中.我正在使用MVVM.

这是我的代码:

public class TabItem
{
    public string Header { get; set; }
    public object Content { get; set; } // object to allow all sort of items??
}
Run Code Online (Sandbox Code Playgroud)

TabUserControl的Viewmodel

public class TabViewModel
{
    public ObservableCollection<TabItem> Tabs {get;set;}

    public TabViewModel()
    {
        Tabs = new ObservableCollection<TabItem>();
        //Tabs.Add(new TabItem { Header = "Overview", Content = new OverviewViewModel() }); How to load a usercontrol here if it's in the ItemCollection?
        Tabs.Add(new TabItem { Header = "Overview", Content = "Bla bla bla" }); …
Run Code Online (Sandbox Code Playgroud)

wpf user-controls mvvm tabitem

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