我有我的MainApplication窗口,它启动一个带有.ShowDialog()的新窗口,以便它是模态的.
UploadWindow uploadWindow = new UploadWindow();
uploadWindow.ShowDialog();
Run Code Online (Sandbox Code Playgroud)
现在用户经常打开这个窗口,它可能会在其他窗口下丢失.单击MainApplication时,您会收到类似错误的蜂鸣声,并且无法与它进行交互,因此模态窗口会按预期正确阻塞,但如果模式窗口在此时聚焦以向用户显示它,则会很好还开着.
目前看起来好像MainApplication窗口已经锁定.
在630 x 400窗口中,我正在加载XAML元素:
问题是,当我设置UserControl的背景时,颜色只会下降到内容.我希望UserControl的背景当然涵盖整个UserControl.我试过了:
但颜色仍然拒绝下降.我不想设置固定宽度,因为用户可以增加应用程序的大小.
如何获取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) 我想在像素数量上设置一些限制/边界,我们可以拉伸网格内的网格划分器控件.这怎么可能?基本上不应该允许将网格划分器拉到很大的限制(它应该限制在较小的网格边界)
我有一个基于PRISM的WPF应用程序,它使用MVVM模式.
我注意到偶尔我的视图模型,视图以及与它们相关的所有内容将在其预期寿命之后很久就会出现问题.
一个泄漏涉及在属于注入服务的集合上订阅CollectionChanged,另一个涉及不在DispatcherTimer上调用Stop方法,而另一个泄漏需要清除它的项目.
我觉得使用CompositePresentationEvent可能比订阅CollectionChanged更可取,但在其他场景中,我倾向于实现IDisposable并让视图在视图模型上调用Dispose方法.
但是后来需要告诉视图什么时候在视图模型上调用Dispose,当视图的复杂性增加时,它会变得更具吸引力,并且它们开始包含子视图.
您认为处理视图模型的最佳方法是什么,以确保它们不会泄漏内存?
提前致谢
伊恩
我可能会遇到星期一的愚蠢,但是在我将它们添加到后面的代码中后,我找不到扩展所有树视图节点的好方法(比如treeView.ExpandAll()).
有什么快速帮助?
我已经做了一个简单的例子来重现我遇到的问题TreeView.如果我选择了一个项目TreeView,向下滚动,更改Focus,然后TreeView再次选择一个项目,列表开始跳转.
只有我有这种情况才会发生VirtualizingStackPanel.IsVirtualizing="True".这是一个已知的问题吗?有工作吗?
所以重现:
我正在使用.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问题.
默认情况下,窗口的背景为白色.我正在尝试破解错误报告表单,我想模仿更标准的Windows外观和感觉.
获取背景的默认颜色的任何简单方法?
我怎样才能做到这一点?
顺便说一下,Popup.PopupAnimation = PopupAnimation.Fade ......过快地消失了.我想在那里至少半秒钟.
如何将属性名称(在字符串中)转换为DependencyProperty?
我有一组属性名称,其值以字符串和a表示DependencyObject.现在我想将这些属性值设置为DependencyObject.有关如何实现这一点的任何想法?
谢谢.
我有一个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)