Tag: wpf

如何创build一个运行STA线程的任务(TPL)?

使用线程非常简单 Thread thread = new Thread(MethodWhichRequiresSTA); thread.SetApartmentState(ApartmentState.STA); 如何使用WPF应用程序中的任务来完成相同的任务? 这里是一些代码: Task.Factory.StartNew ( () => {return "some Text";} ) .ContinueWith(r => AddControlsToGrid(r.Result)); 我得到一个InvalidOperationException 调用线程必须是STA,因为许多UI组件都需要这个。

如何重新启动WPF应用程序?

我怎样才能重新启动一个WPF应用程序? 在我使用的Windows窗体 System.Windows.Forms.Application.Restart(); 如何在WPF中做到这一点?

如何定位所有控件(WPF样式)

我可以指定适用于所有元素的样式吗? 我试过了 <Style TargetType="Control"> <Setter Property="Margin" Value="0,5" /> </Style> 但它什么也没做

在WPF中使用超链接的示例

我见过几个build议,你可以通过Hyperlink控制添加到WPF应用程序的Hyperlink 。 以下是我想要在代码中使用它的方法: <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="BookmarkWizV2.InfoPanels.Windows.UrlProperties" Title="UrlProperties" Height="754" Width="576"> <Grid> <Grid.RowDefinitions> <RowDefinition></RowDefinition> <RowDefinition Height="40"/> </Grid.RowDefinitions> <Grid> <ScrollViewer ScrollViewer.VerticalScrollBarVisibility="Auto" Grid.RowSpan="2"> <StackPanel > <DockPanel LastChildFill="True" Margin="0,5"> <TextBlock Text="Url:" Margin="5" DockPanel.Dock="Left" VerticalAlignment="Center"/> <TextBox Width="Auto"> <Hyperlink NavigateUri="http://www.google.co.in"> Click here </Hyperlink> </TextBox> </DockPanel > </StackPanel> </ScrollViewer> </Grid> <StackPanel HorizontalAlignment="Right" Orientation="Horizontal" Margin="0,7,2,7" Grid.Row="1" > <Button Margin="0,0,10,0"> <TextBlock […]

WPF MessageBox窗口样式

如何将默认的Windows样式应用于WPF中的标准MessageBox ? 例如,当我执行下一个代码时: MessageBox.Show("Hello Stack Overflow!", "Test", MessageBoxButton.OKCancel, MessageBoxImage.Exclamation); 我收到消息框: 但是在WinForms中,风格一切正常: MessageBox.Show("Hello Stack Overflow!", "Test", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);

使ListView.ScrollIntoView将项目滚动到ListView(C#)的中心

ListView.ScrollIntoView(object)当前在ListViewfind一个对象并滚动到它。 如果您位于要滚动的对象下方,则会将该对象滚动到顶部行。 如果您位于上方,则会将其滚动到底部的视图中。 如果当前不可见,我想将项目滚动到列表视图的中心。 有没有简单的方法来完成这个?

如何在ItemsControl中的项目之间添加分隔符

我需要在Items Control中显示一个集合中的数字列表。 所以项目是:“1”,“2”,“3”。 当它们被渲染时,我需要用逗号(或类似的东西)来分隔它们。 所以上面的3个项目看起来是这样的:“1,2,3”。 我怎样才能添加一个分隔符到单个项目,而没有一个钉在列表的最后? 我没有停留在使用ItemsControl,但这就是我已经开始使用。

从ViewModelclosures窗口

我使用window control创build一个login,以允许用户login到我创build的WPF应用程序。 到目前为止,我已经创build了一个方法来检查用户是否在login屏幕上的textboxinput了username和password的正确凭据,并binding两个properties 。 我通过创build一个bool方法来实现这一点,就像这样; public bool CheckLogin() { var user = context.Users.Where(i => i.Username == this.Username).SingleOrDefault(); if (user == null) { MessageBox.Show("Unable to Login, incorrect credentials."); return false; } else if (this.Username == user.Username || this.Password.ToString() == user.Password) { MessageBox.Show("Welcome " + user.Username + ", you have successfully logged in."); return true; } else […]

当它的锚元素移动时,如何移动WPF Popup?

我有一个像这样定义的Popup: <Popup Name="myPopup" StaysOpen="True" Placement="Bottom" PlacementRectangle="0,20,0,20" PlacementTarget="{Binding ElementName=myPopupAnchor}"> <TextBlock … /> </Popup> 我已经添加了事件处理程序到MouseEnter和MouseLeave事件的myPopupAnchor元素。 两个事件处理程序切换popup窗口的可见性。 我的问题是myPopupAnchor的位置只在popup窗口第一次显示时被读取,或者被隐藏然后再次显示。 如果锚点移动,popup不会。 我正在寻找解决方法,我想要一个移动的Popup。 我可以通知WPF的PlacementTarget绑定已经改变,应该再次阅读? 我可以手动设置popup窗口的位置吗? 目前,我有一个非常粗糙的解决方法,涉及closures,然后再次打开popup,这会导致一些重新绘制的问题。

WPF的Windows 7主题?

有什么办法让WPF应用程序看起来像在Windows 7上运行,即使它运行在XP上? 我正在寻找一些可以粘贴的主题。我知道Codeplex上的主题项目( http://www.codeplex.com/wpfthemes ),但是它缺less对DataGrid支持,极其需要。 我在想也许Windows 7的主题只是一个简单的端口,或者已经存在于某个文件中。 你有任何信息(即使这是坏消息)将不胜感激。 更新 使用@Lars Truijens的想法,我能够获得主要控件的Windows 7的外观,但不幸的是,它不工作的WPF工具包DataGrid控制,我需要。 DataGrid看起来像Aero主题一样 DataGrid 应该像这样 所以,如果有人有任何想法,我仍然在寻找解决这个问题的方法。 也许有人已经构build了涵盖WPF工具包控件的Aero主题的扩展? 再次,你有任何信息是非常感激。 更新2 – 问题解决! 为了使Aero主题与WPF Toolkit控件一起工作,您只需添加第二个Aero字典,以便您的App.xaml现在应该如下所示。 <Application.Resources> … <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" /> <ResourceDictionary Source="pack://application:,,,/WPFToolkit;component/Themes/Aero.NormalColor.xaml" /> … </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> 另外,我build议closuresDataGrid控件中的网格线(因为它们看起来很可怕 ): <DataGrid GridLinesVisibility="None" …>