Questions tagged «xaml»

可扩展应用程序标记语言(XAML)是一种基于XML的声明性语言,用于初始化各种框架中的结构化值和对象。如果对使用特定框架的XAML的使用有疑问,还应提供该框架的标签,例如[wpf](Windows Presentation Foundation),[silverlight],[windows-phone],[windows-store-apps]( Windows 8应用商店应用程序),[win-universal-app],[xamarin.forms]或[workflow-foundation]

3
如何使用样式/模板格式化WPF中的小数位数?
我正在编写WPF程序,试图通过某种可重复的方法(例如样式或模板)来找到在TextBox中格式化数据的方法。我有很多TextBox(准确地说是95个),每个TextBox都绑定到自己的数字数据,每个数字数据都可以定义自己的分辨率。例如,如果数据是分辨率为2的99.123,则应显示99.12。同样,数据值99和分辨率3应该显示为99.000(而不是99)。有没有办法做到这一点? 编辑: 我应该澄清一下,我正在处理的当前屏幕上有95个文本框,但是我希望程序中各个屏幕上的每个文本框都显示正确的小数位数。现在,我考虑了一下,其中一些是TextBoxes(例如我现在正在处理的屏幕),一些是DataGrids或ListViews,但是如果我能弄清楚如何使其能够用于TextBoxes,我敢肯定,我可以以及其他控件。 在这种情况下,没有太多代码可共享,但是我将尝试使其更加清晰: 我有一个包含以下属性(vb.net)的视图模型: Public ReadOnly Property Resolution As Integer Get Return _signal.DisplayResolution End Get End Property Public ReadOnly Property Value As Single Get Return Math.Round(_signal.DisplayValue, Resolution) End Get End Property 在XAML中,我有: <UserControl.Resources> <vm:SignalViewModel x:Key="Signal" SignalPath="SomeSignal"/> </UserControl.Resources> <TextBox Grid.Column="3" IsEnabled="False" Text="{Binding Path=Value, Source={StaticResource Signal}, Mode=OneWay}" /> EDIT2(我的解决方案): 事实证明,离开计算机一段时间后,我回来找到一个简单的答案,令我望而却步。在视图模型中格式化数据! Public …

7
绑定到WPF中的方法?
在这种情况下,如何在WPF中绑定到对象方法? public class RootObject { public string Name { get; } public ObservableCollection<ChildObject> GetChildren() {...} } public class ChildObject { public string Name { get; } } XAML: <TreeView ItemsSource="some list of RootObjects"> <TreeView.Resources> <HierarchicalDataTemplate DataType="{x:Type data:RootObject}" ItemsSource="???"> <TextBlock Text="{Binding Path=Name}" /> </HierarchicalDataTemplate> <HierarchicalDataTemplate DataType="{x:Type data:ChildObject}"> <TextBlock Text="{Binding Path=Name}" /> …
90 .net  wpf  data-binding  xaml 

10
如何在WPF中自动调整GridViewColumn数据的大小并使其右对齐?
我怎么能够: 右对齐ID列中的文本 根据具有最长可见数据的单元格的文本长度,使各列自动调整大小? 这是代码: <ListView Name="lstCustomers" ItemsSource="{Binding Path=Collection}"> <ListView.View> <GridView> <GridViewColumn Header="ID" DisplayMemberBinding="{Binding Id}" Width="40"/> <GridViewColumn Header="First Name" DisplayMemberBinding="{Binding FirstName}" Width="100" /> <GridViewColumn Header="Last Name" DisplayMemberBinding="{Binding LastName}"/> </GridView> </ListView.View> </ListView> 部分答案: 感谢Kjetil,GridViewColumn.CellTemplate可以很好地工作,自动宽度也可以正常工作,但是当ObservativeCollection“ Collection”用比列宽长的数据更新时,列大小不会自动更新,因此这仅仅是解决方案初始显示数据: <ListView Name="lstCustomers" ItemsSource="{Binding Path=Collection}"> <ListView.View> <GridView> <GridViewColumn Header="ID" Width="Auto"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding Id}" TextAlignment="Right" Width="40"/> </DataTemplate> …


10
如何在样式设置器中添加混合行为
我已经为Button创建了Blend行为。如何将其设置为应用程序中的所有“按钮”。 <Button ...> <i:Interaction.Behaviors> <local:MyBehavior /> </i:Interaction.Behaviors> </Button> 但是,当我尝试: <Style> <Setter Property="i:Interaction.Behaviors"> <Setter.Value> <local:MyBehavior /> </Setter.Value> </Setter> </Style> 我得到错误 属性“行为”没有可访问的设置器。

9
WPF中的Application.DoEvents()在哪里?
我有以下示例代码,每次按下按钮时都会缩放: XAML: <Window x:Class="WpfApplication12.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Canvas x:Name="myCanvas"> <Canvas.LayoutTransform> <ScaleTransform x:Name="myScaleTransform" /> </Canvas.LayoutTransform> <Button Content="Button" Name="myButton" Canvas.Left="50" Canvas.Top="50" Click="myButton_Click" /> </Canvas> </Window> * .cs public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void myButton_Click(object sender, RoutedEventArgs e) { Console.WriteLine("scale {0}, location: {1}", …
88 c#  .net  wpf  xaml 

13
如何在WPF中获取当前屏幕的大小?
我知道我可以通过使用获得主屏幕的大小 System.Windows.SystemParameters.PrimaryScreenWidth; System.Windows.SystemParameters.PrimaryScreenHeight; 但是,如何获取当前屏幕的大小?(多屏幕用户并不总是使用主屏幕,并且并非所有屏幕都使用相同的分辨率,对吗?) 能够从XAML访问大小很好,但是从代码(C#)进行访问就足够了。
87 c#  wpf  xaml  size  screen 

9
XAML中的readonly属性的OneWayToSource绑定
Наэтотвопросестьответына堆栈溢出нарусском:绑定的ActualHeightиActualWidth的контролавсвойство视图模型 我正在尝试Readonly使用OneWayToSourceas模式绑定到属性,但是似乎无法在XAML中完成此操作: <controls:FlagThingy IsModified="{Binding FlagIsModified, ElementName=container, Mode=OneWayToSource}" /> 我得到: 无法设置属性“ FlagThingy.IsModified”,因为它没有可访问的集合访问器。 IsModified是只读DependencyProperty的FlagThingy。我想将该值绑定到FlagIsModified容器上的属性。 要清楚: FlagThingy.IsModified --> container.FlagIsModified ------ READONLY ----- ----- READWRITE -------- 仅使用XAML,这可能吗? 更新:嗯,我通过在容器而不是上设置绑定来解决这种情况FlagThingy。但是我仍然想知道这是否可能。

15
WPF CommandParameter首次调用NULL时为NULL
WPF和Commands绑定到ItemsControl的DataTemplate内部的Button时,我遇到了问题。该场景非常简单。ItemsControl绑定到对象列表,我希望能够通过单击按钮来删除列表中的每个对象。按钮执行命令,命令负责删除。CommandParameter绑定到我要删除的对象。这样我就知道用户单击了什么。用户只能删除其“自己的”对象-因此,我需要在Command的“ CanExecute”调用中进行一些检查,以验证用户是否具有正确的权限。 问题在于,第一次调用时传递给CanExecute的参数为NULL-因此我无法运行逻辑来启用/禁用命令。但是,如果我一直启用它,然后单击按钮执行命令,则CommandParameter将正确传递。因此,这意味着与CommandParameter的绑定正在工作。 ItemsControl和DataTemplate的XAML如下所示: <ItemsControl x:Name="commentsList" ItemsSource="{Binding Path=SharedDataItemPM.Comments}" Width="Auto" Height="Auto"> <ItemsControl.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Button Content="Delete" FontSize="10" Command="{Binding Path=DataContext.DeleteCommentCommand, ElementName=commentsList}" CommandParameter="{Binding}" /> </StackPanel> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> 如您所见,我有一个Comments对象列表。我希望DeleteCommentCommand的CommandParameter绑定到Command对象。 所以我想我的问题是:以前有人遇到过这个问题吗?CanExecute在我的Command上被调用,但是第一次该参数始终为NULL-为什么? 更新:我能够将问题缩小一点。我添加了一个空的Debug ValueConverter,以便在CommandParameter与数据绑定时可以输出一条消息。原来的问题是,在CommandParameter绑定到按钮之前执行了CanExecute方法。我尝试在Command之前设置CommandParameter(如建议的那样)-但它仍然无法正常工作。有关如何控制它的任何提示。 Update2:有什么方法可以检测到绑定何时“完成”,以便我可以强制重新评估命令?另外-我是否有多个按钮(ItemsControl中的每个项目一个按钮)绑定到Command对象的同一实例,这是一个问题吗? Update3:我已将错误的复制品上传到我的SkyDrive:http : //cid-1a08c11c407c0d8e.skydrive.live.com/self.aspx/Code%20samples/CommandParameterBinding.zip


7
在WPF中对WebBrowser的Source属性进行数据绑定
有谁知道如何在WPF(3.5SP1)中对WebBrowser的.Source属性进行数据绑定?我有一个列表视图,我想在左侧有一个小的WebBrowser,在右侧是内容,并希望将每个WebBrowser的源与绑定到列表项的每个对象中的URI进行数据绑定。 到目前为止,这就是我作为概念证明所得到的,但是“ <WebBrowser Source="{Binding Path=WebAddress}"”没有编译。 <DataTemplate x:Key="dealerLocatorLayout" DataType="DealerLocatorAddress"> <StackPanel Orientation="Horizontal"> <!--Web Control Here--> <WebBrowser Source="{Binding Path=WebAddress}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled" Width="300" Height="200" /> <StackPanel Orientation="Vertical"> <StackPanel Orientation="Horizontal"> <Label Content="{Binding Path=CompanyName}" FontWeight="Bold" Foreground="Blue" /> <TextBox Text="{Binding Path=DisplayName}" FontWeight="Bold" /> </StackPanel> <TextBox Text="{Binding Path=Street[0]}" /> <TextBox Text="{Binding Path=Street[1]}" /> <TextBox Text="{Binding Path=PhoneNumber}"/> <TextBox Text="{Binding …
85 c#  wpf  xaml  data-binding  browser 

7
WPF ListView:附加双击(在项目上)事件
我有以下内容ListView: <ListView Name="TrackListView"> <ListView.View> <GridView> <GridViewColumn Header="Title" Width="100" HeaderTemplate="{StaticResource BlueHeader}" DisplayMemberBinding="{Binding Name}"/> <GridViewColumn Header="Artist" Width="100" HeaderTemplate="{StaticResource BlueHeader}" DisplayMemberBinding="{Binding Album.Artist.Name}" /> </GridView> </ListView.View> </ListView> 如何将事件附加到每个双击该项目将触发的绑定项目?
85 c#  wpf  xaml 


3
如何在ComboBoxItem的内容中包含与号(&)
我目前有一个类似下面的组合框: //XAML <ComboBox> <ComboBoxItem> Awake & Alive</ComboBoxItem> </ComboBox> 这就引发了一个错误:以&开头的实体引用或序列必须以分号';'终止。 我假设我缺少某种允许使用&的转义序列。如何设置此组合框的内容以包含&?
84 xaml  escaping 

5
我可以在Visual Studio中将设计窗格与XAML窗格分开吗?
是否可以将我正在设计的WPF窗口与其XAML代码分开?双击任何XAML文件都将打开该文件,并在一个窗口中同时显示XAML代码和WPF窗口,将它们水平或垂直拆分,但仍然都在一个窗口中。我有4个监视器,我编写的XAML代码行很长,因此我想单独在一个监视器上编辑XAML代码,在另一个监视器上查看WPF窗口,但是似乎没有将它们分成两个不同的窗口可能。 我可以执行但我不喜欢的几个糟糕的解决方法是: 与设计人员解除对整个XAML编辑器的对接,然后在两个监视器上调整该窗口的大小,以使XAML代码位于一个监视器上,而WPF窗口位于另一个监视器上。 使用“打开方式...”打开同一XAML文档的第二个编辑器,但是代码突出显示和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.