Questions tagged «wpf»

Windows Presentation Foundation或WPF是用于在基于Windows的应用程序中呈现用户界面的子系统。



10
WPF应用程序没有输出到控制台吗?
我从一个非常简单的WPF测试应用程序中使用Console.WriteLine(),但是当我从命令行执行该应用程序时,却看不到任何内容写入控制台。有人知道这里可能会发生什么吗? 我可以通过在VS 2008中创建WPF应用程序并在要执行的任何位置简单地添加Console.WriteLine(“ text”)来重现它。有任何想法吗? 我现在所需要的只是与Console.WriteLine()一样简单的东西。我意识到我可以使用log4net或其他日志记录解决方案,但是我确实不需要此应用程序那么多的功能。 编辑:我应该记得Console.WriteLine()是用于控制台应用程序的。哦,没有愚蠢的问题,对吧?:-)我现在只使用System.Diagnostics.Trace.WriteLine()和DebugView。
112 c#  .net  wpf  console 

6
从DataTemplate访问父DataContext
我有一个ListBox绑定到ViewModel上的子集合。列表框项是根据父ViewModel上的属性在数据模板中设置样式的: <Style x:Key="curveSpeedNonConstantParameterCell"> <Style.Triggers> <DataTrigger Binding="{Binding Path=DataContext.CurveSpeedMustBeSpecified, ElementName=someParentElementWithReferenceToRootDataContext}" Value="True"> <Setter Property="Control.Visibility" Value="Hidden"></Setter> </DataTrigger> </Style.Triggers> </Style> 我收到以下输出错误: System.Windows.Data Error: 39 : BindingExpression path error: 'CurveSpeedMustBeSpecified' property not found on 'object' ''BindingListCollectionView' (HashCode=20467555)'. BindingExpression:Path=DataContext.CurveSpeedMustBeSpecified; DataItem='Grid' (Name='nonConstantCurveParametersGrid'); target element is 'TextBox' (Name=''); target property is 'NoTarget' (type 'Object') 因此,如果我将绑定表达式更改为"Path=DataContext.CurrentItem.CurveSpeedMustBeSpecified"它可以工作,但前提是父用户控件的datacontext是a BindingListCollectionView。这是不可接受的,因为其余的用户控件会自动绑定到CurrentItemon的属性BindingList。 如何在样式内部指定绑定表达式,以便无论父数据上下文是集合视图还是单个项目,绑定表达式都可以工作?

11
WPF中的MVVM-如何向ViewModel发出模型更改的警报…还是应该?
我正在阅读一些MVVM文章,主要是this和this。 我的具体问题是:如何将模型更改从模型传递到ViewModel? 在Josh的文章中,我看不到他这样做。ViewModel总是向模型询问属性。在Rachel的示例中,她确实具有模型实现INotifyPropertyChanged,并从模型中引发事件,但是这些事件仅供视图本身使用(有关执行此操作的详细信息,请参阅她的文章/代码)。 我在哪里都看不到模型向ViewModel发出模型属性更改警报的示例。这让我担心也许由于某些原因未完成。 有没有一种模式可以提醒ViewModel模型中的更改? 似乎有必要,因为(1)可以想象每个模型有多个ViewModel,并且(2)即使只有一个ViewModel,对模型的某些操作也可能导致其他属性被更改。 我怀疑可能会有“为什么要这样做?”形式的答案/评论。注释,所以这是我的程序的描述。我是MVVM的新手,所以我的整体设计可能有问题。我将简要描述一下。 我正在编写比“客户”或“产品”类更有趣的东西(至少对我来说!)。我正在编程BlackJack。 我有一个View,它没有任何代码,仅依赖于绑定到ViewModel中的属性和命令(请参阅Josh Smith的文章)。 是好还是坏,我把该模型应该不仅包含类,如态度PlayingCard,Deck但也BlackJackGame认为保持整场比赛的状态类的,知道什么时候该玩家已经破产,经销商有画卡,玩家和发牌人当前的得分是多少(小于21、21,半身等)。 从BlackJackGame我开始,我公开了“ DrawCard”之类的方法,然后想到在绘制卡片时CardScore,IsBust应该更新诸如和的属性,并将这些新值传递给ViewModel。也许那是错误的想法? 可以采取ViewModel调用该DrawCard()方法的态度,因此他应该知道要求更新分数,并确定自己是否破产。意见? 在我的ViewModel中,我有逻辑来获取纸牌的实际图像(基于西服,等级)并将其用于视图。该模型不必为此担心(也许其他ViewModel只会使用数字而不是纸牌图像)。当然,也许有人会告诉我,该模型甚至不应该具有BlackJack游戏的概念,而应该在ViewModel中进行处理?
112 c#  .net  wpf  mvvm 



9
使WPF窗口可拖动,无论单击什么元素
我的问题是2折,我希望WPF提供的解决方案比WinForms的标准解决方案(在我澄清之前,Christophe Geers提供的)更简单。 首先,有没有一种方法可以使Window可拖动而不捕获和处理鼠标单击+拖动事件?我的意思是窗口可以通过标题栏拖动,但是如果我将一个窗口设置为没有窗口并且仍然希望能够拖动它,是否可以通过某种方式将事件重新定向到处理标题栏拖动的任何方式? 其次,是否有一种方法可以将事件处理程序应用于窗口中的所有元素?如图所示,无论用户单击并拖动哪个元素,都使其可拖动。显然,无需手动将处理程序添加到每个元素。只是在某个地方做一次?


8
如何在屏幕上居中放置WPF应用程序?
我想在启动时在主屏幕上将WPF应用居中。我知道我必须设置myWindow.Left和myWindow.Top,但是我从哪里得到这些值? 我发现System.Windows.Forms.Screen.PrimaryScreen,显然不是WPF。有WPF替代方案可以给我屏幕分辨率或类似的东西吗?

4
查找WPF窗口的句柄
Windows窗体具有属性win1.Handle,如果我记得,它返回主窗口句柄的句柄? 有没有等效的方法来获取WPF窗口的句柄? 我在网上找到了以下代码, IntPtr windowHandle = new WindowInteropHelper(Application.Current.MainWindow).Handle; 但我认为这对我没有帮助,因为我的应用程序有多个窗口。 谢谢!!
109 wpf  window  handle 

23
如何在WPF页面加载的组合框中显示默认文本“ --Select Team-”?
在WPF应用程序中,在MVP应用程序中,我有一个组合框,用于显示从数据库中获取的数据。在将项目添加到“组合”框中之前,我想显示默认文本,例如 “-选择团队-” 以便在页面加载时显示它,并在选择它时清除文本并显示项目。 正在从数据库中选择数据。我需要显示默认文本,直到用户从组合框中选择一个项目。 请指导我
109 wpf  combobox 

4
如何隐藏wpf datagrid行选择器
我正在使用WPF DataGrid控件显示一些详细信息和一个选择按钮,并且我不需要左侧的灰色选择器列。这也破坏了我设计的美感。 有没有办法删除它,或者如果没有,我该如何设置它的样式以匹配它?
108 wpf  wpfdatagrid 

12
在Enter键上绑定文本框
默认的数据绑定TextBox为TwoWay,仅当TextBox失去焦点时才将文本提交给属性。 当我按?Enter键时,是否有任何简单的XAML方法使数据绑定发生TextBox。我知道在后面的代码中很容易做到,但是请想象这TextBox是否复杂DataTemplate。
108 c#  wpf  xaml  .net-3.5  textbox 

6
带图像的WPF按钮
我正在尝试在WPF中的按钮上附加图像,但是此代码失败。类似的代码在Mozilla XUL中可以正常工作之后,看起来似乎很奇怪。 <Button Height="49.086" Margin="3.636,12,231.795,0" Name="button2" VerticalAlignment="Top" Grid.Column="1" Click="button2_Click" Source="Pictures/apple.jpg">Disconnect from Server</Button>
108 wpf 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.