我正在尝试获取不同技术的概述,以便在Windows世界中构buildGUI时使用。 对于上下文,我正在构build一个二维平台的多人游戏。 (只是为了学习的目的..) 我的老师说,他认为WPF是正确的路,但他似乎只是将其与Windows窗体进行比较。 我的理解是,在2015年,Windows窗体已经完全死了? 在这个其他的stackover问题中,他们说WinRT + XAML是用于Metro GUI构build的(Window 8 tiles thing!),而且WPF似乎只用于Window 7/8中的桌面,并且与Silverlight密切相关。 Windows 8 Runtime(WinRT / Windowsapp store应用/ Windows 10通用应用)与Silverlight和WPF相比如何? 桌面是旧的应用程序的居住地(红色,WFP)。 新一类的应用程序Metro应用程序可以通过多种方式构build,包括VB.NET,C#或C ++。 这三种语言选项可以使用XAML来构build用户界面。 另一种方法是使用JavaScript / HTML5 / CSS来开发UI和应用程序代码。 我真正的问题是:是不是有一个好的方法来build立窗口世界的GUI? 如果不是的话,应该在Window 7,Window 8(桌面和Metro),Window Phone(和Windows 10!)甚至是X-box上使用哪种技术。 这是不同的技术比较吗? 你认为什么是正确的投资时间?
我想从Hex值(例如#ffaacc)创buildSolidColorBrush。 我怎样才能做到这一点? 在MSDN上,我得到了: SolidColorBrush mySolidColorBrush = new SolidColorBrush(); mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, 255); 所以我写了(考虑我的方法接收颜色为#ffaacc ): Color.FromRgb( Convert.ToInt32(color.Substring(1, 2), 16), Convert.ToInt32(color.Substring(3, 2), 16), Convert.ToInt32(color.Substring(5, 2), 16)); 但是这给了错误 The best overloaded method match for 'System.Windows.Media.Color.FromRgb(byte, byte, byte)' has some invalid arguments 还有3个错误: Cannot convert int to byte. 但是,那么MSDN的例子如何工作?
我在没有expression式混合的情况下工作,只是在vs2010中使用XAML编辑器。 除此之外,我越来越看到devise时数据绑定的需要。 对于简单的情况, FallbackValue属性工作得非常好(Textboxes和TextBlocks等)。 但是特别是在处理ItemsControl之类的时候,真的需要样本数据在devise器中可见,这样您就可以在无需运行可执行文件的情况下调整和调整控件和数据模板。 我知道ObjectDataProvider允许绑定到一个types,因此可以提供可视化的devise时数据,但是有一些杂耍,允许真正的运行时数据绑定,而不浪费资源,通过加载加载两个devise时间,虚假的数据和运行时绑定。 真的,我想要的是在XAMLdevise器中有“约翰”,“保罗”,“乔治”和“林戈”这样的能力,在我的ItemsControl显示为可样式化的项目,但是当应用程序运行 我也知道Blend允许一些特殊的属性来定义WPF在运行时条件下有效忽略的devise时绑定数据。 所以我的问题是: 1.我该如何利用Visual Studio XAMLdevise器中的集合和非平凡数据的devise时绑定,然后顺利地交换到运行时绑定? 2.其他人如何解决这个devise时间与运行时数据问题? 在我的情况下,我不能很容易地使用相同的数据(因为可以用数据库查询)。 3.他们是否可以用于数据集成XAMLdevise的expression式混合? (我知道有一些select,但我特别想要的东西,我可以使用,看到绑定的样本数据等?)
我在我的XAML中有一个矩形,并想在后面的代码中更改它的Canvas.Left属性: <UserControl x:Class="Second90.Page" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300" KeyDown="txt_KeyDown"> <Canvas> <Rectangle Name="theObject" Canvas.Top="20" Canvas.Left="20" Width="10" Height="10" Fill="Gray"/> </Canvas> </UserControl> 但是这不起作用: private void txt_KeyDown(object sender, KeyEventArgs e) { theObject.Canvas.Left = 50; } 有谁知道这是什么语法?
我有一个DataGrid,它是通过asynchronous方法从ViewModel填充数据。我的DataGrid是: <DataGrid ItemsSource="{Binding MatchObsCollection}" x:Name="dataGridParent" Style="{StaticResource EfesDataGridStyle}" HorizontalGridLinesBrush="#DADADA" VerticalGridLinesBrush="#DADADA" Cursor="Hand" AutoGenerateColumns="False" RowDetailsVisibilityMode="Visible" > 我正在使用http://www.amazedsaint.com/2010/10/asynchronous-delegate-command-for-your.html在我的viewmodel中实现asynchronous的方式。 这是我的viewmodel代码: public class MainWindowViewModel:WorkspaceViewModel,INotifyCollectionChanged { MatchBLL matchBLL = new MatchBLL(); EfesBetServiceReference.EfesBetClient proxy = new EfesBetClient(); public ICommand DoSomethingCommand { get; set; } public MainWindowViewModel() { DoSomethingCommand = new AsyncDelegateCommand( () => Load(), null, null, (ex) => Debug.WriteLine(ex.Message)); _matchObsCollection = new ObservableCollection<EfesBet.DataContract.GetMatchDetailsDC>(); […]
我想在右键单击select一个WPF TreeView节点,就在显示ContextMenu之前。 对于WinForms,我可以使用像这样的代码在上下文菜单下单击查找节点 ,什么是WPF的替代品?
我有一个简单的WPF ListView和一个简单的问题: 是否有可能closuresselect,所以当用户点击行,行不突出显示? 我想第1行看起来就像行0点击。 可能的相关:我可以风格的hover/select的外观? 例如。 用自定义纯色replace蓝色渐变hover外观(第3行)。 我发现这一点 , 这不幸的是没有帮助。 (在不使用ListView的情况下也可以实现,我只是希望能像ListView那样使用逻辑滚动和UI虚拟化) 非常感谢您的帮助。 用于ListView的XAML是: <ListView Height="280" Name="listView"> <ListView.Resources> <!– attempt to override selection color –> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightColorKey}" Color="Green" /> </ListView.Resources> <ListView.View> <GridView> <GridView.Columns> <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" /> <!– more columns –> </GridView.Columns> </GridView> </ListView.View> </ListView>
我想在我的WPF应用程序中创build一个与Windows窗体中的菜单栏相同的菜单栏。 我将如何做到这一点? WPF控件工具箱中的菜单选项只提供一个空白栏。
我有一个标签的工具提示,我希望它保持打开,直到用户将鼠标移动到不同的控制。 我已经在工具提示上尝试了以下属性: StaysOpen="True" 和 TooltipService.ShowDuration = "60000" 但是在这两种情况下,工具提示只显示5秒钟。 为什么这些值被忽略?
我如何把我的网格在C#/ WPF的边框? 这是我想要的,但是把整个事情放在边界上,而不是放在我的应用程序中的网格控件。 <Grid> <Border BorderBrush="Black" BorderThickness="2"> <Grid Height="166" HorizontalAlignment="Left" Margin="12,12,0,0" Name="grid1" VerticalAlignment="Top" Width="479" Background="#FFF2F2F2" /> </Border> … and so on …