Tag: xaml

如何从XAML中的CLR命名空间映射类型而不是声明它的汇编?

在XAML中,我想使用来自两个不同程序集的类型,每个程序集都有自己的命名空间。 我不想在xmlns:=””属性中显式声明名称空间,而是使用[XmlnsDefinition]程序集属性将URI映射到这些类型的名称空间。 其中一个程序集本身与WPF无关,所以我想避免它引用与WPF相关的程序集,特别是System.Xaml.dll程序集,如果该程序集使用[XmlnsDefinition]属性。 我有一个像这样组织的Visual Studio解决方案: Gu.Units.sln Gu.Units.csproj //这里没有对System.Xaml的引用 Gu.Units.Wpf.csproj //引用Gu.Units和System.Xaml 在Gu.Units.Wpf.csproj我有这个映射: [assembly: XmlnsDefinition(“http://Gu.com/Units”, clrNamespace: “Gu.Units”, AssemblyName = “Gu.Units”)] [assembly: XmlnsDefinition(“http://Gu.com/Units”, clrNamespace: “Gu.Units.Wpf”, AssemblyName = “Gu.Units.Wpf”)] [assembly: XmlnsPrefix(“http://Gu.com/Units”, “units”)] 我试图在XAML中使用它,如下所示: 但由于某种原因,名称空间Gu.Units似乎被忽略了。 也就是说,它不包含在URI http://Gu.com/Units标识的XML命名空间中。 相反,我得到: 名称“LengthUnit”在命名空间“ http://Gu.com/Units ”中不存在。 XAML中的显式名称空间声明 – 即具有xmlns:units=”clr-namespace:Gu.Units;assembly=Gu.Units” – 工作正常,但我也想避免这种情况。 有没有办法,我可以让我的Gu.Units.Wpf.dll程序集提供必要的[XmlnsDefinition]属性来映射Gu.Units.Wpf.dll程序[XmlnsDefinition]的命名空间,以便后者本身不需要对System.Xaml.dll的引用System.Xaml.dll , System.Xaml.dll没有任何特定于XAML的代码?

当焦点在WindowsFormsHost中时,为什么Keyboard.FocusedElement为null? 它打破了WPF命令路由

我有一个自定义的RoutedUICommand MyCommand ,它通过ICommand.Execute执行。 顶部窗口有一个绑定来处理它: 这是此命令的唯一处理程序。 我还有一个带有WinForms的TextBox控件的WindowsFormsHost (用于演示目的)。 当焦点位于此TextBox , MyCommand不会到达顶部窗口。 当焦点位于WPF的本机TextBox ,将按预期调用命令处理程序。 我已经发现这种情况正在发生,因为当焦点在WindowsFormsHost时, Keyboard.FocusedElement为null 。 在这种情况下,为什么它为null ,是WPF错误还是设计function? 我错过了什么吗? 我相信命令应该到达顶部窗口,无论焦点在哪里 (当它是可视树中唯一的处理程序并且FocusManager.IsFocusScope设置正确时)。 我有一个相关的问题 。 项目来源可在此处获得 。 XAML: C#: using System; using System.Windows; using System.Windows.Input; namespace WpfCommandTest { public partial class MainWindow : Window { public static readonly RoutedUICommand MyCommand = new RoutedUICommand(“MyCommand”, “MyCommand”, typeof(MainWindow)); const string Null […]

MVVM在点击时更改网格的背景颜色

我是MVVM模式的真正初学者。 我正试图在按钮的点击上更改网格的背景。 我有一个包含按钮的网格的xaml,以及一个ViewModel .cs,我希望在按钮点击时更改网格的背景。 直到我点击时才能成功显示MessageBox … .xaml代码: MainWindowViewModel.cs代码: namespace WpfSimple { class MainWindowViewModel { private ICommand m_ButtonCommand; public ICommand ButtonCommand { get { return m_ButtonCommand; } set { m_ButtonCommand = value; } } public MainWindowViewModel() { ButtonCommand=new RelayCommand(new Action(ChangeBgColor)); } public void ChangeBgColor(object obj) { /*HERE I WANT TO CHANGE GRID COLOR*/ } } } […]

如何在后面的代码中将ItemsPanelTemplate设置为动态创建的Grid

我已经在XAML定义了这个UserControl ,并希望在我的代码后面动态设置ItemsPanelTemplate (不像示例中的XAML ): 我尝试过类似的东西 this.Items.ItemsPanel.Template = new Grid(); 但悲惨地失败了。 有帮助吗? 背景:我只知道运行时网格列和行的数量。

如何通过用户的XAML动态地向UserControl添加控件?

我想创建一个包含TextBlock和StackPanel的用户控件,允许用户在XAML中动态地将他/她自己的控件添加到用户控件。 以下是我的UserControl的示例XAML: 我希望用户能够将此用户控件嵌入到他们的XAML中,并将他们自己的控件添加到用户控件的堆栈面板中: 使用上述XAML执行此操作不起作用。 有任何想法吗?

为什么绑定的StringFormat没有使用当前的文化?

我目前的文化是ru-RU。 我需要它将十进制格式化为货币字符串。 decimal n = 111.22M; n.ToString(“C”) will return “111,22р.” 但是当我尝试使用绑定的StringFormat字段时,我得到一个“$ 111.22”的结果

在WPF列表视图中逐项滚动

我有一个列表视图,其高度非常小,但有3-4个listviewitems,它占用了Listview的整个大小(所以一次只能显示一个项目) 如果用户滚动它,列表视图不会一次滚动1个项目,它一次滚动2个项目(单个滚动) 你如何设置它如此滚动=一个项目向下/向上? 希望我明白这一点,如果不是只是告诉我。

如何调整图像Xamarin Forms的“内部”标签

我试图在我的图像中放置一个标签,我无法使用Margin属性,因为某些原因它不起作用,直到现在我有这个: 我想要的是这个: XAML:

找不到类型或命名空间名称(XAML新增function)

所以我正在尝试使用Visual Studio 2012在XAML文档上使用一个非常简单的骰子应用程序,但我无法弄清楚如何处理错误。 我尝试使用bitmapimage添加; 但它仍然行不通。 以下是我得到的错误: Error 1 Undefined namespace. The ‘using’ URI refers to a namespace ‘DiceRoll’ that could not be found. Error 2 The type or namespace name ‘BitmapImage’ could not be found (are you missing a using directive or an assembly reference?) CS: using System; using System.Collections.Generic; using System.IO; using System.Linq; using […]

如何让Visual Studio识别XAML更改?

我刚开始使用WPF,所以我可能在这里遗漏了一些简单的东西。 我有一个窗口,我在VS 2010中编辑。当我手动更改XAML然后运行应用程序(F5)时,窗口仍然像我的编辑之前一样,但是如果我进行重建然后运行应用程序我的更改显示。 有没有办法让VS认识到我已经更改了我的XAML文件并在按F5时自动重新编译?