Tag: xaml

在Windows 10移动应用程序中使用黑色字体的黑色StatusBar

我有一个在移动设备上运行的Windows 10 UWP应用程序。 当我在模拟器中运行应用程序时,一切正常。 当我在设备(Lumia 550)上运行它时,StatusBar是黑色的,带有黑色字体,状态指示器不可见。 这是某种错误吗? 我知道我可以强制StatusBar有白色背景和黑色,但应用程序的要求是坚持主题(黑色主题中的黑色StatusBar,Light主题中的白色)。 如果我创建一个新的空Windows 10应用程序并在设备上运行它,问题是相同的,它不是我的应用程序特定的。

将单独的XAML导入为ResourceDictionary并分配x:Key

我下载了Visual Studio图像库 ,我看到包含的图标以.XAML文件的forms提供矢量格式。 这是一个例子: Add_16x.xaml 我想将我想要在我的应用程序源中使用的所有图标xaml文件放在名为“Icons”的文件夹中,然后能够在其他地方IconDictionary.xaml一个名为IconDictionary.xaml的文件,该文件定义了一个包含MergedDictionaries的ResourceDictionary并在此MergedDictionaries希望能够以某种方式包含icon.xaml文件并为它们分配一个x:Key属性,以便我可以在整个应用程序中将它们称为静态资源。 是否可以使用此icon.xaml文件而无需修改.xaml文件本身? 我希望能够保留它们,但不幸的是,似乎我别无选择,只能将其内容复制到我的IconDictionary.xaml或编辑单个.xaml文件并将它们包含在带有x:Key的ResourceDictionary x:Key我可以添加到MergedDictionaries x:Key 。 UPDATE 为了清楚起见,我希望我的IconDictionary.xaml看起来像这样:

更改ContentControl.Content时开始动画

我正在尝试在Button或ContentControl等内容控件更改其内容时触发动画。 我最初的想法是这样做: 但是我不知道更改/更新ContentPresenter时会触发哪个事件。 有任何想法吗?

如何突出显示具有某种颜色的树视图选定项目?

我在WPF中有一个树视图。 当我选择treeviewitem时,我想要一种不同的颜色。

与转换器的双向数据绑定不会更新源

我有一个数据绑定设置与转换器,以将一个笨拙的XML源转换为显示和编辑方便的内部类树。 一切都非常适合从XML源读取,但我有一段时间试图对内部类进行更改以传播回XML源。 这是使用网站的XAML: XmlSource是父数据绑定对象的CLR读写属性(不是DependencyProperty)。 它是从XSD生成的.NET类型。 SampleConverter实现了IValueConverter 。 调用Convert方法并返回非空数据,但从不调用ConvertBack方法。 SampleControl是一个UserControl,它封装了与Sample数据树的UI交互。 这是XAML看起来像这样: [… other stuff …] Sample属性是SampleControl代码中的DependencyProperty: public static readonly DependencyProperty SampleProperty = DependencyProperty.Register(“Sample”, typeof(SampleType), typeof(SampleControl), new PropertyMetadata(new PropertyChangedCallback(OnSampleChanged))); public SampleType Sample { get { return (SampleType)GetValue(SampleProperty); } set { SetValue(SampleProperty, value); } } private static void OnSampleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (e.NewValue != null) { […]

WPF内存泄漏

我有一个简单的wpf应用程序。 在主窗口中,我有堆栈面板和2个按钮。 第一个按钮添加了100个用户控件(没有任何数据绑定,事件,位图),第二个按钮从面板中删除所有这些控件并调用GC.Collect()。 并且存在一些问题:1。在我第一次单击“删除”按钮后,并非所有内存都释放,我必须单击几次以释放更多内存。 2. 5-10分钟内存释放后,但不会有几兆字节。 例如,在我的应用程序启动后,当我添加500个控件时需要~22mb – 在我第一次点击“删除”按钮后~~~60mb~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ,我不明白这一点,我是WPF的新手,也许我想念一些我想立即释放内存的东西。 namespace WpfApplication10 { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void button1_Click(object sender, RoutedEventArgs e) { int N = 100; //var r = new ActivityStatisticItem(“111”, “222”, DateTime.Now, “333”, 1); for (int i = 0; i < N; i++) { […]

Clr名称空间映射到默认的xaml名称空间

我有点厌倦了必须在每个xaml文件中声明一个xmlns并且必须为我的自定义控件使用前缀。 是否可以将clr名称空间映射到“http://schemas.microsoft.com/winfx/2006/xaml/presentation”? 我在AssemblyInfo.cs中尝试了以下内容: [assembly: XmlnsDefinition(“http://schemas.microsoft.com/winfx/2006/xaml/presentation”,”MyOwnNamespace”)] 但这似乎不起作用。 我仍然得到一个编译错误,如: XML名称空间“http://schemas.microsoft.com/winfx/2006/xaml/presentation”中不存在标记“MyCustomControl”。 注意:我的控件在同一个程序集中(我有一个程序集)。

如何将WPF页面添加到tabcontrol?

我有这个主要的wpf窗口 和这个WPF页面 我需要在主窗口中将此页面添加到tabcontrol 这是我的OnRender方法 protected override void OnRender(DrawingContext drawingContext) { if (ISFirstRender) { TabItem tabitem = new TabItem(); tabitem.Header = “Tab 3”; pan1.Items.Add(tabitem); Page1 page1 = new Page1(); tabitem.Content = new Page1(); ISFirstRender = false; } base.OnRender(drawingContext); } 应用程序运行后,我在选择新选项卡时遇到此exception 我需要知道如何将wpf页面添加到现有的tabcontroll

窗口加载和WPF

我在Windows 2012中有一个WPF项目,我需要在Window Loaded事件中加载一些信息。 不过,我需要在View Model中而不是在CodeBehind中执行此操作。 我试图使用以下代码: 在我的xaml中: 在我的视图模型中: private DelegateCommand _WindowLoadedCommand; public DelegateCommand WindowLoadedCommand { get { return _WindowLoadedCommand; } private set { _WindowLoadedCommand = value; } } public ShellViewModel() { WindowLoadedCommand = new DelegateCommand(WindowLoadedAction); } protected void WindowLoadedAction() { … } 我附加的行为: public class WindowLoadedBehavior : Behavior { [SuppressMessage(“Microsoft.StyleCop.CSharp.MaintainabilityRules”, “SA1401:FieldsMustBePrivate”, Justification = “Dependency Property. […]

WPF SelectionChanged为相同的值

我在ComboBox项目中使用SelectionChanged,但是当我再次选择相同的项目时,SelectionChanged函数不会触发,我需要它来执行此操作。 我怎么能告诉它不要解雇我做的选择。 private void ComboBox_SelectionChanged4(object sender, SelectionChangedEventArgs e) { //do some stuff } XAML: 添加项目: for (int i = 0; i < Pr4.Count(); i++) { ComboBoxItem item = new ComboBoxItem(); item.Content = Pr4[i]; Combo4.Items.Add(item); }