Tag: wpf

从资源文件设置image.Source

private void SetCredentials() { username = txtfromEmail.Text; password = txtpassword.Text; pictureLogin.Source = @”C:\Users\Sergio\Documents\Visual Studio 2008\Projects\emailwpf\emailwpf\ok.png”; } 我收到一个错误: “Cannot convert string to ImageSource” 。 我能做什么?

关于设置和部署的水晶报告集成问题

我有一个使用水晶报告的大量报告的应用程序。现在我想使用visual studio设置向导设置和部署我的项目。但我的问题是我想在另一台没有安装水晶报告的计算机上安装该应用程序。完美运行直到它到达报表部分,它会抛出一个错误”CrystalDecisions.CrystalReports.Engine.ReportDocument’的类型初始化程序抛出exception’。 如何在我的安装项目中引用水晶报告依赖关系,任何人都有想法?

基于动态资源的风格

似乎不允许这样的事情。 任何解决方法? 我收到错误:无法在’Style’类型的’BasedOn’属性上设置’DynamicResourceExtension’。 ‘DynamicResourceExtension’只能在DependencyObject的DependencyProperty上设置。 如果我将其更改为StaticResource,则该样式不会出现在我的控件中。

为什么DataTemplate.LoadContent()不尊重模板定义的触发器?

TL-DR版本: 我们试图找出触发器生效的DataTemplate的自动应用与手动调用触发器无效的DataTemplate.LoadContent()之间的区别。 现在细节…… 但首先,我首先要说的是,这个问题是为了帮助我们理解框架及其在内部所做的工作,因此,相关代码严格来说明问题本身,并不代表我们的实际代码。 正如他们所说,它仅用于说明目的。 (只是试图避免不可避免的’我不明白你想要做什么’或’那不是我会怎么做’的回应。再一次,它只是为了支持这个问题。希望这是有道理的。) 也就是说,考虑这个XAML定义一个String的DataTemplate有两个触发器(每个触发器都针对不同的元素)…… xmlns:system=”clr-namespace:System;assembly=mscorlib” … 然后在XAML中该模板在范围内的另一个位置,我们有… ……按预期工作。 在代码中,我们可以像这样访问扩展模板(Border)的根元素… var expandedTemplateRootElement = VisualTreeHelper.GetChild(TestPresenter, 0) as FrameworkElement; ……但触发器的应用方式和位置如何? 它们显然有效,但expandTemplateRootElement.Triggers.Count和TestPresenter.Triggers.Count都返回零。 正如问题标题中所述,如果我们尝试手动扩展DataTemplate中的内容,就像这样…… var rawContents = “Show me the money!”; var dataTemplateToUse = TestPresenter.FindResource(new DataTemplateKey(rawContents.GetType())); var expandedTemplateRootElement = dataTemplateToUse.LoadContent() as FrameworkElement; expandedTemplateRootElement.DataContext = rawContents; SomeOtherPresenter.Contents = expandedTemplateRootElement; …虽然这确实在第二个ContentPresenter中显示了Border和TextBlock(在这里称为SomeOtherPresenter),而dataTemplateToUse.Triggers 确实显示了两个已定义,但它们不起作用! 我想知道 a)为什么不,和 b)如何启用/应用它们。 当然,“作弊”只是简单地启动新的ContentPresenter,设置其内容,然后将其ContentTemplate设置为相关的DataTemplate。 然后你可以把整个东西塞进另一个ContentPresenter中,让框架担心细节,比如这…… var rawContents […]

如何使用Caliburn.Micro将容器绑定到MVVM标准中的listview控件?

我正在使用Caliburn.Micro库编写MVVM (C#)和XAML程序。 我想知道如何将Listview控件与List , IEnumerable或ObservableCollection等容器绑定? 查看\ MainView.xaml 的ViewModels \ MainViewModel.cs namespace ListBox_CaliburnMicro { public class MainViewModel : Screen { // … public MainViewModel() { } public class FileItem { public string FileStatus { get; private set; } public string FileName { get; private set; } public string FileSize { get; private set; } public string […]

如何在WPF中设置按钮的背景颜色?

如何在xaml中设置按钮的背景颜色? 它不会比这更难 但这不起作用……为了避免混淆,这里的按钮是System.Windows.Controls.Button 编辑 我忘了提到我使用DevExpress的ThemeManager但不认为这会导致问题,因为DevExpress他们没有设计标准的Windows按钮…但显然他们这样做,这基本上使得无法改变按钮的背景颜色没有一些重要的工作……

如何在textBlock上设置on click效果并打开一个新的WPF窗口?

嗨,我是WPF的新手,我正在努力学习它。 所以现在我想知道如何在ListBox中的文本块上创建onclick效果。 我想点击listBox中的任何项目并打开一个新窗口。 我一定做错了什么,但我不知道它是什么。 到目前为止,我有以下内容。 上面的代码在我的XAML文件中。 如果是这样,我还需要其他东西。 应该在哪里?

渲染(重绘)不可见的canvas

我在每个页面上都有一个带有单独canvas(在它们上面有不同的UserControls)的选项卡式应用程序。 现在我需要将所有页面(canvas)保存到图像中。 代码是这样的: public static System.Drawing.Bitmap ExportToImage(Canvas canvas) { // Save old background Brush background = canvas.Background; // Clear background to make images free of it canvas.Background = null; //canvas.UpdateLayout(); //canvas.InvalidateVisual(); // Create a render bitmap and push the surface to it RenderTargetBitmap renderBitmap = new RenderTargetBitmap( (int)canvas.Width, (int)canvas.Height, 96d, 96d, PixelFormats.Pbgra32); renderBitmap.Render(canvas); MemoryStream picStream […]

WPF DatePicker LostFocus发射七次

我这里有一个非常简单的场景。 请看布局,请: 和代码隐藏: private void _datePicker_OnLostFocus(object sender, RoutedEventArgs e) { Debug.WriteLine(“LostFocuse”); } 所以,麻烦的是当我拿起一些日期并点击TextBox然后,事件LostFocus激发7( 七! )次。 一个当DatePicker真的失去了焦点,当我在TextBox并完全剩下6次时,我无法解释。 我该如何解决? 我只需要一次这次活动。 或者我可以使用其他一些活动? 我用同样的结果尝试了LostKeyBoardFocus 。

图像源UriKind

我有一个项目,它的名字是’xx’。 我创建了一个具有此路径的文件夹“images”:xx \ bin \ Debug \ images \ 图像只包含一张照片,其名称为“1.jpg”,MainWindow包含图像控件; 我设置此代码加载图像源但它不起作用为什么??: private void Image_MouseDown(object sender, MouseButtonEventArgs e) { Image i = sender as Image; ; BitmapImage b = new BitmapImage(new Uri(@”images\1.jpg”,UriKind.Relative)); i.Source=b; } 如何通过代码加载图像源? 提前致谢 :)