Tag: xaml

x:在xaml中的含义

我看到很多声明 <TextBox x:Name="txtInput" /> 或者像 <BooleanToVisibilityConverter x:Key="boolToVis" /> 为什么x:是需要的,它给了我什么。 <DockPanel.Resources> <c:MyData x:Key="myDataSource"/> </DockPanel.Resources> 在这里,我们也有c: 感谢帮助

如何通过ObjectDataProvider将ComboBox绑定到通用字典

我想用代码中的键/值数据填充ComboBox,我有这样的: XAML: <Window x:Class="TestCombo234.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:TestCombo234" Title="Window1" Height="300" Width="300"> <Window.Resources> <ObjectDataProvider x:Key="Choices" ObjectType="{x:Type local:CollectionData}" MethodName="GetChoices"/> </Window.Resources> <StackPanel HorizontalAlignment="Left"> <ComboBox ItemsSource="{Binding Source={StaticResource Choices}}"/> </StackPanel> </Window> 代码背后: using System.Windows; using System.Collections.Generic; namespace TestCombo234 { public partial class Window1 : Window { public Window1() { InitializeComponent(); } } public static class CollectionData { public static Dictionary<int, string> […]

苹果风格的滚动条WPF

我试图减小滚动条控件的大小,并使其更像“苹果”,因为它将非常适合我的界面。 我试图达到的是这样的: 到目前为止,我所拥有的就是这个 <Style TargetType="{x:Type ScrollBar}"> <Setter Property="Stylus.IsFlicksEnabled" Value="True" /> <Setter Property="Background" Value="#8C8C8C" /> <Setter Property="Width" Value="8"/> <Setter Property="MinWidth" Value="8" /> </Style> 工作XAML 实现可以在WPF的Apple Style Scrollbar中find <!–Scrollbar Thumbs–> <Style x:Key="ScrollThumbs" TargetType="{x:Type Thumb}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Thumb}"> <Grid x:Name="Grid"> <Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Height="Auto" Fill="Transparent" /> <Border x:Name="Rectangle1" CornerRadius="5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Height="Auto" Background="{TemplateBinding […]

绑定ComboBoxes枚举…在Silverlight中!

所以,网页和StackOverflow,有很多很好的答案,如何将一个combobox绑定到WPF中的枚举属性。 但是Silverlight缺less所有使这个可能的function:(例如: 您不能使用接受types参数的genericsEnumDisplayer风格的IValueConverter ,因为Silverlight不支持x:Type 。 你不能使用ObjectDataProvider ,就像这种方法一样 ,因为它不存在于Silverlight中。 由于标记扩展在Silverlight中不存在,所以不能像#2链接的注释那样使用自定义标记扩展。 因为XAML不支持generics(并且使得它们的工作都依赖于标记扩展,Silverlight不支持),所以不能使用generics的#1版本。 大规模的失败! 正如我所看到的,做这项工作的唯一方法是要么 作弊和绑定到我的ViewModel中的string属性,其setter / getter进行转换,使用View中的代码隐藏将值加载到ComboBox中。 为每个我想要绑定的枚举创build一个自定义的IValueConverter 。 有没有更通用的替代scheme,即不要一遍又一遍地写我想要的每一个枚举? 我想我可以做解决scheme#2使用接受enum作为types参数的generics类,然后创build新的类为每个我想要的枚举 class MyEnumConverter : GenericEnumConverter<MyEnum> {} 你的想法是什么?

为什么要避免WPF MVVM模式中的代码隐藏?

在这篇文章中, WPF应用程序使用Model-View-ViewModeldevise模式 ,作者Josh Smith说: (1)在devise良好的MVVM体系结构中,大多数视图的代码隐藏应该是空的,或者最多只包含操作该视图中包含的控件和资源的代码。 (2)有时也需要在视图的代码隐藏中编写代码,与ViewModel对象进行交互,比如挂钩一个事件或调用一个本来很难从ViewModel调用的方法。 我的问题是,在(1)中,为什么空的代码隐藏被认为是一个精心devise的MVVM。 (这听起来是空的代码总是好的。) 编辑:我的问题是,如下所示,为什么像AttachedCommandBehavior或InvokeCommandAction方法试图避免代码隐藏编码。 让我解释更多的细节。 就(1)而言,我认为就像AttachedCommandBehavior一样 。 由于边界没有为MouseRightButtonDown实现ICommandSource ,所以不能共同绑定事件和ICommand ,但可以使用AttachedCommandBehavior 。 <!– I modified some code from the AttachedCommandBehavior to show more simply –> <Border> <local:CommandBehaviorCollection.Behaviors> <local:BehaviorBinding Event="MouseRightButtonDown" Command="{Binding SomeCommand}" CommandParameter="A Command on MouseRightButtonDown"/> </local:CommandBehaviorCollection.Behaviors> </Border> 要么 我们可以用System.Windows.Interactivity.InvokeCommandAction来做到这一点。 <Border xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" > <i:Interaction.Triggers> <i:EventTrigger EventName="MouseRightButtonDown"> <i:InvokeCommandAction Command="{Binding SomeCommand}" CommandParameter="A Command on […]

如何在包含双引号和单引号的XAML中显示文本?

在我的XAML文件中,我想显示包含双引号和 单引号的文本: 你不应该select“如果新的复制”。 这些工作都不是: <TextBlock Text="You shouldn't choose "Copy if New":"/> <TextBlock Text="You shouldn't choose ""Copy if New"":"/> <TextBlock Text="You shouldn't choose \"Copy if New\":"/> <TextBlock Text='You shouldn't choose \"Copy if New\":'/> <TextBlock Text='You shouldn\'t choose \"Copy if New\":'/> 我放弃了,我可以在XAML中做这个吗?

网格星号在后面的代码

我有一个网格如下, <Grid> <Grid.RowDefinitions> <RowDefinition Height="0.5*" /> <RowDefinition Height="0.5*" /> </Grid.RowDefinitions> </Grid> 我如何在代码中给出Height = "0.5*" ?

该应用程序称为一个接口,编组为一个不同的线程 – Windowsapp store应用程序

所以,首先我已经阅读了关于这个特定问题的大量的线索,我仍然不知道如何解决这个问题。 基本上,我正在尝试与websocket进行通信,并将收到的消息存储在绑定到listview的可观察集合中。 我知道我正在从套接字得到一个响应正确,但是当它试图将其添加到可观察集合,它给了我以下错误: The application called an interface that was marshalled for a different thread. (Exception from HRESULT: 0x8001010E (RPC_E_WRONG_THREAD)) 我已经阅读了一些关于“派遣”的信息以及其他的一些信息,但是我很困惑! 这是我的代码: public ObservableCollection<string> messageList { get; set; } private void MessageReceived(MessageWebSocket sender, MessageWebSocketMessageReceivedEventArgs args) { string read = ""; try { using (DataReader reader = args.GetDataReader()) { reader.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf8; read = reader.ReadString(reader.UnconsumedBufferLength); } […]

如何仅在XAML中设置顶部边距?

我可以在代码中单独设置边距,但是如何在XAML中执行此操作,例如,如何执行此操作: 伪代码: <StackPanel Margin.Top="{Binding TopMargin}">

WP7应用程序栏图标不显示在模拟器上(但在混合工作)

这很可能是一个愚蠢的错误,但谁能告诉我为什么我的图标显示在Blend,而不是在模拟器(而不是在VS10中,但这不是一个问题)? 编辑 – 这是我的XAML: <phone:PhoneApplicationPage.ApplicationBar> <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True"> <shell:ApplicationBarIconButton IconUri="/Images/share.png" Text="Partager"/> <shell:ApplicationBarIconButton IconUri="/Images/appbar.edit.rest.png" Text="Note"/> <shell:ApplicationBarIconButton IconUri="/Images/appbar.feature.camera.rest.png" Text="Photos/Vidéos"/> <shell:ApplicationBarIconButton IconUri="/Images/calendar.png" Text="Rendez-vous"/> <shell:ApplicationBar.MenuItems> <shell:ApplicationBarMenuItem Text="MenuItem 1"/> <shell:ApplicationBarMenuItem Text="MenuItem 2"/> </shell:ApplicationBar.MenuItems> </shell:ApplicationBar> </phone:PhoneApplicationPage.ApplicationBar> 我的四个.png文件是48×48,透明.png与黑色的前景,因为appbar.*.rest.png文件在那里,并在Microsoft图标文件夹中find