Questions tagged «wpf»

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

7
在WPF中可以使用哪些方法来虚拟设计时数据?
我在没有表达式混合的情况下工作,仅在vs2010中使用XAML编辑器。抛开这种智慧,我越来越看到对设计时数据绑定的需求。对于简单的情况,该FallbackValue属性可以很好地工作(文本框和文本块等)。但是尤其是在处理ItemsControl类似内容时,确实需要在设计器中显示示例数据,以便您可以调整和调整控件和数据模板,而不必运行可执行文件。 我知道ObjectDataProvider可以绑定到一个类型,因此可以提供设计时数据以进行可视化,但是在通过加载两个设计时间来加载时,需要进行一些努力以允许真实的运行时数据绑定而不会浪费资源,虚拟数据和运行时绑定。 我真正想要的是能够在XAML设计器中将“ John”,“ Paul”,“ George”和“ Ringo”显示为样式元素ItemsControl,但在应用程序中显示真实数据的能力运行。 我也知道Blend允许一些定义设计时绑定数据的特殊属性,WPF在运行时条件下会有效地忽略这些数据。 所以我的问题是: 1.如何在Visual Studio XAML设计器中利用集合的设计时绑定和非平凡的数据,然后平稳地交换到运行时绑定? 2.其他人如何解决此设计时与运行时数据问题?就我而言,我不能很轻易地对两者使用相同的数据(就像使用数据库查询一样)。 3.它们可以替代我用于数据集成XAML设计的表达式混合吗?(我知道有一些替代方法,但是我特别想要我可以使用的东西并查看绑定的样本数据,等等?)

4
如何在多重绑定中为1个绑定传递一个常量值?
我有多重绑定 <TextBlock> <TextBlock.Text> <MultiBinding Converter="{StaticResource myConverter}"> <Binding Path="myFirst.Value" /> <Binding Path="mySecond.Value" /> </MultiBinding> </TextBlock.Text> </TextBlock> 我想将一个固定值(例如“ 123”)传递给上述两个绑定之一。如何使用XAML做到这一点?

6
WPF工具栏:如何消除握力和溢出
在嵌套的WPF ToolBarPanel-ToolBar-Menu中,我们要摆脱左侧的握柄和右侧的溢出区域。它们都变灰了,但是我们希望它们根本不显示。 关于如何实现这一目标的任何想法? 以防万一我的说法不完全正确,如果您查看下面链接的图3中的图像,则在三个工具栏的最下方,下拉菜单的左侧和最右侧的右侧都有夹子按钮有溢出。 工具栏图片
97 wpf  toolbar 

14
为什么我不能引用System.ComponentModel.DataAnnotations?
我正在尝试在WPF项目中使用DataAnnotations来指定字符串的最大长度,并具有以下内容: using System.ComponentModel.DataAnnotations; 但是,我得到了错误 类型或名称空间名称“ DataAnnotations”在名称空间“ System.ComponentModel”中不存在(您是否缺少程序集引用?) 我看过其他示例,该名称空间中DataAnnotations 确实存在。我正在使用C#4。有什么原因我不能使用这个吗?我该如何解决?


3
如何在Code中设置绑定?
我需要在代码中设置绑定。 我似乎无法正确理解。 这是我尝试过的: XAML: <TextBox Name="txtText"></TextBox> 后面的代码: Binding myBinding = new Binding("SomeString"); myBinding.Source = ViewModel.SomeString; myBinding.Mode = BindingMode.TwoWay; myBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; BindingOperations.SetBinding(txtText, TextBox.TextProperty, myBinding); ViewModel: public string SomeString { get { return someString; } set { someString= value; OnPropertyChanged("SomeString"); } } 设置时属性未更新。 我究竟做错了什么?
96 c#  wpf  xaml  data-binding 

5
如何使用DataContext属性在XAML中的窗口上设置ViewModel?
这个问题几乎说明了一切。 我有一个窗口,并尝试使用完整的名称空间将DataContext设置为ViewModel,但是我似乎做错了。 <Window x:Class="BuildAssistantUI.BuildAssistantWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" DataContext="BuildAssistantUI.ViewModels.MainViewModel">
96 .net  wpf  xaml  mvvm 

8
Horizo​​ntalAlignment =拉伸,最大宽度和向左对齐?
这似乎应该很容易,但我很困惑。在WPF中,我想要一个TextBox,它可以扩展到其父级的宽度,但只能扩展到最大宽度。问题是我希望它在其父项中保持合理。要使其伸展,您必须使用Horizo​​ntalAlignment =“ Stretch”,但是结果将居中。我已经尝试过Horizo​​ntalContentAlignment,但似乎没有任何作用。 如何使这个蓝色文本框随窗口大小而增长,最大宽度为200像素,并保持对齐状态? <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <StackPanel> <TextBox Background="Azure" Text="Hello" HorizontalAlignment="Stretch" MaxWidth="200" /> </StackPanel> </Page> 诀窍是什么?
95 wpf  xaml  alignment  stretch 

9
WPF:如何以编程方式从文本框中删除焦点
我想为WPF添加一个简单的(至少我以为是)行为TextBox。 当用户按下Escape键时,我希望TextBox他正在编辑,以使其具有用户开始编辑时的文本,并且我想从中移除焦点TextBox。 我将文本设置为编辑开始时的值没有任何问题。 问题是要删除该元素的焦点。我不想将焦点移到任何其他组件,我只是想TextBox失去焦点。我是否需要一个不可见的元素来设置焦点,以便我TextBox可以失去焦点?
95 wpf  textbox  focus 

5
如何传递一个整数作为ConverterParameter?
我试图绑定到一个整数属性: <RadioButton Content="None" IsChecked="{Binding MyProperty, Converter={StaticResource IntToBoolConverter}, ConverterParameter=0}" /> 而我的转换器是: [ValueConversion(typeof(int), typeof(bool))] public class IntToBoolConverter : IValueConverter { public object Convert(object value, Type t, object parameter, CultureInfo culture) { return value.Equals(parameter); } public object ConvertBack(object value, Type t, object parameter, CultureInfo culture) { return value.Equals(false) ? DependencyProperty.UnsetValue : parameter; } …

17
从ViewModel关闭窗口
我使用创建了一个Login,window control以允许用户登录到WPF我正在创建的应用程序。 到目前为止,我已经创建了一个检查用户是否已经在为正确的凭据进入了一个方法username,并password在textbox登录屏幕,上binding2 properties。 我是通过创建一个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 …
95 c#  wpf  mvvm 

3
在WPF中安全地访问UI(主)线程
我有一个应用程序,该应用程序每次以以下方式更新我正在监视的日志文件(附加新文本)时都会更新我的datagrid: private void DGAddRow(string name, FunctionType ft) { ASCIIEncoding ascii = new ASCIIEncoding(); CommDGDataSource ds = new CommDGDataSource(); int position = 0; string[] data_split = ft.Data.Split(' '); foreach (AttributeType at in ft.Types) { if (at.IsAddress) { ds.Source = HexString2Ascii(data_split[position]); ds.Destination = HexString2Ascii(data_split[position+1]); break; } else { position += at.Size; } …

3
强制TextBlock包装在WPF ListBox中
我有一个显示消息的WPF列表框。它在左侧包含一个头像,而用户名和消息垂直堆叠在该头像的右侧。在消息文本自动换行之前,布局是可以的,但是我在列表框上看到了水平滚动条。 我已经搜索了Google,发现了类似问题的解决方案,但没有一个起作用。 <ListBox HorizontalContentAlignment="Stretch" ItemsSource="{Binding Path=FriendsTimeline}"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Border BorderBrush="DarkBlue" BorderThickness="3" CornerRadius="2" Margin="3" > <Image Height="32" Width="32" Source="{Binding Path=User.ProfileImageUrl}"/> </Border> <StackPanel Orientation="Vertical"> <TextBlock Text="{Binding Path=User.UserName}"/> <TextBlock Text="{Binding Path=Text}" TextWrapping="WrapWithOverflow"/> <!-- This is the textblock I'm having issues with. --> </StackPanel> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox>

8
在WPF中隐藏网格行
我有一个简单的WPF表单,该表单上有一个Grid声明。这Grid有一堆行: <Grid.RowDefinitions> <RowDefinition Height="Auto" MinHeight="30" /> <RowDefinition Height="Auto" Name="rowToHide" /> <RowDefinition Height="Auto" MinHeight="30" /> </Grid.RowDefinitions> 名为的行rowToHide包含一些输入字段,在检测到不需要这些字段后,我想隐藏此行。只需将其设置Visibility = Hidden为该行中的所有项目就足够简单了,但该行仍占用的空间Grid。我尝试设置Height = 0项目,但这似乎不起作用。 您可以这样想:您有一个表格,在其中有一个下拉菜单,显示“付款类型”,如果此人选择了“现金”,则想隐藏包含卡详细信息的行。不能在已隐藏的情况下启动表单。
94 wpf  grid 

9
Windows GUI:WPF或WinRT(2015+)
我试图概述在Windows World中构建GUI时要使用的不同技术。 对于上下文,我正在构建一个小的2D平台多人游戏。(仅出于学习目的。) 我的老师说他认为WPF是正确的方法,但似乎他只将它与Windows Forms进行了比较。 我的理解是,在2015年,Windows Forms完全死了吗? 在其他有关堆栈的问题中,他们说WinRT + XAML用于Metro GUI的构建(Window 8平铺东西!),而且WPF似乎仅用于Window 7/8中的桌面,并且与Silverlight密切相关。 Windows 8运行时(WinRT / Windows Store应用程序/ Windows 10 Universal App)与Silverlight和WPF相比如何? 桌面是旧应用程序所在的位置(红色WFP)。 新型应用程序Metro应用程序可以通过多种方式构建,包括通过VB.NET,C#或C ++。这三种语言选项可以使用XAML来构建UI。另一种选择是使用JavaScript / HTML5 / CSS来开发UI和应用程序代码。 我真正的问题是:在Window World中是否没有一种构建GUI的好方法? 如果没有,那么应该在Window 7,Window 8(台式机和Metro),Window Phone(和Windows 10!)甚至x-box上使用哪种技术。 这样对不同的技术进行比较吗? 您认为投资时间正确吗?

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.