Tag: wpf

使用MediaElement从Stream播放video

是否有可能使用WPF MediaElement从System.IO.Stream对象播放streamvideo? 正在从存储媒体文件的WCF服务中检索Stream对象。

如何从代码隐藏中访问控件模板的元素

我正在尝试访问内容控件的控件模板内的用户控件。 特别: <ContentControl x:Name="MyList" > <ContentControl.Template> <ControlTemplate x:Name="MyControlTemplate"> <Border RenderTransformOrigin="0,0" x:Name="border"> <UserControls:MyControl x:Name="MyControlName" Width="100" ViewModel="{Binding}" /> 我可以访问this.MyList但它说this.MyControlName找不到。 在这种情况下如何从代码隐藏中访问MyControlName对象? 谢谢!

我怎样才能让ScrollViewer在StackPanel中工作?

在下面的WPF XAML ScrollViewer不起作用(它显示一个滚动条,但你不能滚动和内容离开窗口底部)。 我可以改变外面的StackPanel到一个网格,它会工作。 但是,在我的应用程序中,我重现了以下代码,我需要一个外部的StackPanel。 我该怎么做的StackPanel使ScrollViewer显示一个可用的滚动条? 例如VerticalAlignment =“Stretch”Height =“Auto”不起作用。 <StackPanel> <ScrollViewer> <StackPanel> <TextBlock Text="This is a test"/> <TextBlock Text="This is a test"/> <TextBlock Text="This is a test"/> <TextBlock Text="This is a test"/> <TextBlock Text="This is a test"/> <TextBlock Text="This is a test"/> <TextBlock Text="This is a test"/> <TextBlock Text="This is a test"/> <TextBlock Text="This is […]

查找BitmapImage的特定像素颜色

我有一个WPF的BitmapImage,我从一个.JPG文件加载,如下所示: this.m_image1.Source = new BitmapImage(new Uri(path)); 我想查询什么颜色是在特定的点。 例如,像素(65,32)处的RGB值是多less? 我如何去做这件事? 我正在采取这种做法: ImageSource ims = m_image1.Source; BitmapImage bitmapImage = (BitmapImage)ims; int height = bitmapImage.PixelHeight; int width = bitmapImage.PixelWidth; int nStride = (bitmapImage.PixelWidth * bitmapImage.Format.BitsPerPixel + 7) / 8; byte[] pixelByteArray = new byte[bitmapImage.PixelHeight * nStride]; bitmapImage.CopyPixels(pixelByteArray, nStride, 0); 虽然我会承认有一点猴子看,猴子会继续这个代码。 无论如何,是否有一个简单的方法来处理这个字节数组转换为RGB值?

将System.Drawing.Icon转换为System.Media.ImageSource

我有一个IntPtr封送在非托pipe/pipe理的边界对应的图标句柄。 通过FromHandle()方法将它转换为一个Icon是很简单的,直到最近这一点都是令人满意的。 基本上,我现在已经有足够的线程奇怪了,我一直在玩的MTA / STA舞蹈,以保持托pipe的WinForm不会破坏应用程序的主要(WPF-tastic)UI太脆弱,不能坚持。 所以WinForm已经走了。 那么,我怎样才能得到一个图标的ImageSource版本? 请注意,我试过ImageSourceConverter无济于事。 顺便说一下,我可以获取一些但不是所有涉及的图标的底层资源,它们通常存在于我的应用程序的程序集之外(事实上,它们通常存在于非​​托pipe的dll中)。

在单独的线程中更新ObservableCollection

在WPF应用程序中,通过LINQ to SQL查询填充和更新ObservableCollection。 然后使用这个ObservableCollection中的值更新UI对象。 LINQ to SQL查询更新这个ObservableCollection的操作在单独的线程中执行是否可行? 如果是的话,在这种情况下,它会是这个ObservableCollection的同一个实例吗? (我的意思是,如果它不是从LINQ datacontext中获取值,也不是用于更新UI的值,那么我将无法更新UI)

为什么使用RelayCommand

我最近在WPF中进行了很多编程,但是我的View和ViewModel在这个时候并不是独立的。 那是部分的 我所有与文本框中的文本,标签内容,datagrid中的列表有关的绑定,都是通过常规属性来完成的,其中包含一个NotifyPropertyChanged事件。 我所有的事件处理button点击或文本更改的东西是通过链接事件。 现在,我想开始使用命令,并find这篇文章: http : //www.codeproject.com/Articles/126249/MVVM-Pattern-in-WPF-A-Simple-Tutorial-for-Absolute 。 它有一个如何设置MVVM的解释,但我与RelayCommand混淆。 它做什么工作? 在我的表单中的所有命令是否可用? (a)某些文本框未填写时,如何禁用button? 编辑1: 一个很好的解释是“所有的命令都适用于我的forms吗?” 在这里回答: https : //stackoverflow.com/a/22286816/3357699 这是我到目前为止的代码: https : //stackoverflow.com/a/22289358/3357699

在Application.Resources vs Window.Resources隐式样式?

我正在看这个问题,并注意到在Application.Resources中放置一个隐式TextBlock样式将该样式应用于所有TextBlocks,即使是其他控件(如Buttons , ComboBoxes等)中的样式 <Application.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="Foreground" Value="Blue" /> </Style> </Application.Resources> 将隐式样式放置在Window.Resources 中不会跨越控件模板的边界 ,所以像Buttons和ComboBoxes这样的东西保持其默认的黑色文本。 <Window.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="Foreground" Value="Blue" /> </Style> </Window.Resources> 此外,在Application.Resources添加默认样式使得它不能用另一个隐式样式覆盖该样式。 <!– Doesn't work if implicit style with same property is in Application.Resources –> <ComboBox.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="Foreground" Value="Red" /> </Style> </ComboBox.Resources> 我的问题是: 为什么是这样? Application.Resources和Windows.Resources之间还有其他区别吗? 什么时候应该使用一个呢? 我知道Application.Resources适用于整个应用程序,而Window.Resources适用于窗口,但是我想知道为什么Application中的样式处理不同于Window样式

该名称不存在于XAML中的命名空间错误中

使用VS2012在VB.NET WPF应用程序上工作。 我有一个简单的MusicPlayer教程应用程序,我正在使用学习WPF。 我将本教程的C#版本逐步转换为VB.NET。 它在应用程序中有两个类都在同一个命名空间下。 我能够引用XAML中的命名空间,但是当我尝试引用XAML中的类对象时,出现错误,我无法编译。 奇怪的是,智能感知既可以通过xmlns:c =标签来引用命名空间,也可以在使用<c:来键入类对象时正常工作<c:但是,该对象带有下划线,并且会生成错误,试图在devise器中生成或工作。 .vb类文件位于名为\ Controls的文件夹中。 主项目根目录空间有意留空。 这个类是这样编码的… Namespace MusicPlayer.Controls Public Class UpdatingMediaElement …. code here End Public End Namespace xaml看起来像这样 (在<Window >标签中定义的名称空间 xmlns:c="clr-namespace:MusicPlayer.Controls" (在<Grid>定义的对象) <c:UpdatingMediaElement Name="MyMediaElement" /> (显示错误)命名空间“clr-namespace:MusicPlayer.Controls”中不存在名称“UpdatingMediaElement”。 不知道什么是错的或如何解决它?

WPF StringFormat = {0:C}显示为美元

为什么这行代码 <TextBlock Text="{Binding Net, StringFormat=c}"/> 当所有区域设置都设置为英国时,将结果输出为$ xx.xx。 我希望它输出为£xx​​.xx。 有任何想法吗? 我已经尝试了stringformat的不同变体,包括StringFormat = {} {0:C},但仍然得到相同的结果。 感谢您的期待。