我打算将字节数组转换为System.Windows.Media.Imaging.BitmapImage并在图像控件中显示BitmapImage 。 当我使用第一个代码时,注意到会发生! 没有错误,没有图像显示。 但是,当我使用第二个,它工作正常! 任何人都可以说是怎么回事? 第一个代码在这里: public BitmapImage ToImage(byte[] array) { using (System.IO.MemoryStream ms = new System.IO.MemoryStream(array)) { BitmapImage image = new BitmapImage(); image.BeginInit(); image.StreamSource = ms; image.EndInit(); return image; } } 第二个代码在这里: public BitmapImage ToImage(byte[] array) { BitmapImage image = new BitmapImage(); image.BeginInit(); image.StreamSource = new System.IO.MemoryStream(array); image.EndInit(); return image; }
经过一番search,似乎将运行时加载到WPF窗口是相当复杂的! Image image; image = new Uri("Bilder/sas.png", UriKind.Relative); ????.Source = new BitmapImage(image); 我正在尝试此代码,但我需要一些帮助才能使其工作。 我在代码下面看到一些红线! 我也想知道是否需要在XAML代码中添加一些额外的代码,或者是足够的: <Image Height="200" HorizontalAlignment="Left" Margin="12,12,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="350" /> 不知道因为我已经看到XAML标签内的图像的例子。 编辑: 我正在使用这个知道: var uri = new Uri("pack://application:,,,/sas.png"); var bitmap = new BitmapImage(uri); image1.Source = bitmap; XAML: <Grid Width="374"> <Image Height="200" HorizontalAlignment="Left" Margin="12,12,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="350" /> <Button Content="Start" Height="23" […]
我有button,我已经将此button绑定到ViewModel命令说OpenWindowCommand。 当我点击button,我想要打开新的窗口。 但是从视图模型创build窗口实例并显示窗口违反了MVVM。 我已经创build了像 interface IWindowService { void showWindow(object dataContext); } 而WindowService像这样实现了这个接口 class WindowService:IWindowService { public void showWindow(object dataContext) { ChildWindow window=new ChildWindow(); window.DataContext=dataContext; window.Show(); } } 在这个类中我已经指定了ChildWindow。 所以这个类与显示ChildWindow紧密结合在一起。 当我想显示另一个窗口时,我必须使用相同的接口和逻辑来实现另一个类。如何使这个类是通用的,以便我可以传递任何窗口的实例,并且类将能够打开任何窗口? 我没有使用任何内置的MVVM框架。我已经阅读了很多关于StackOverflow的文章,但是我找不到任何解决scheme。
我正在使用SynchronizationContext将事件封送到我的DLL中的UI线程,这个线程完成了大量的multithreading后台任务。 我知道singleton模式不是最喜欢的,但是我现在使用它来存储foo的父对象时UI的SynchronizationContext的引用。 public class Foo { public event EventHandler FooDoDoneEvent; public void DoFoo() { //stuff OnFooDoDone(); } private void OnFooDoDone() { if (FooDoDoneEvent != null) { if (TheUISync.Instance.UISync != SynchronizationContext.Current) { TheUISync.Instance.UISync.Post(delegate { OnFooDoDone(); }, null); } else { FooDoDoneEvent(this, new EventArgs()); } } } } 这在WPF中完全不起作用,TheUISync实例UI同步(源自主窗口的Feed)永远不会匹配当前的SynchronizationContext.Current。 在窗体中,当我做同样的事情时,他们会在调用之后匹配,然后我们会返回正确的线程。 我讨厌的修复,看起来像 public class Foo { public event […]
在Windows 8中,我已将颜色scheme设置为自动,并在x分钟后将我的壁纸configuration为更改。 配色scheme根据活动壁纸而改变。 我正在开发一个WPF应用程序,并希望当Windows更改颜色scheme以匹配当前壁纸时我的渐变。 有没有办法获得当前/实际的配色scheme,并通知在C#中的变化?
您好我有几个文本框内的itemcontrol控件的datatemplate。 当我绑定itemcontrols到一个可观察的集合我得到两个文本框。 但我需要做一些基于每个文本框,我想find每个文本使用一些ID分隔的操纵。 任何人都可以帮助如何findWPF中items控件的控件。
我一直在使用Rainlendar一段时间,我注意到它有一个选项,把窗口“在桌面上”。 这就像一个bottomMost窗口(顶层)。 我怎么能在WPF应用程序上做到这一点? 谢谢
以下情况。 我有一个用五个键绑定的用户控件。 当TextBox具有焦点时,UserControl的键绑定停止点燃。 有没有办法解决这个“问题”? <UserControl.InputBindings> <KeyBinding Key="PageDown" Modifiers="Control" Command="{Binding NextCommand}"></KeyBinding> <KeyBinding Key="PageUp" Modifiers="Control" Command="{Binding PreviousCommand}"></KeyBinding> <KeyBinding Key="End" Modifiers="Control" Command="{Binding LastCommand}"></KeyBinding> <KeyBinding Key="Home" Modifiers="Control" Command="{Binding FirstCommand}"></KeyBinding> <KeyBinding Key="F" Modifiers="Control" Command="{Binding SetFocusCommand}"></KeyBinding> </UserControl.InputBindings> <TextBox Text="{Binding FilterText, UpdateSourceTrigger=PropertyChanged}"> <TextBox.InputBindings> <KeyBinding Gesture="Enter" Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl }}, Path=DataContext.FilterCommand}"></KeyBinding> </TextBox.InputBindings> </TextBox> 看来function键( F1等)和ALT + [键]工作。 我认为CTRL和SHIFT修饰符以某种方式阻止事件冒泡到UserControl。
我目前正在使用WPF中的Panel ,我注意到,关于Width和Height属性,还有两个其他属性,称为ActualWidth和ActualHeight 。 ActualWidth 获取此元素的渲染宽度。 这是一个依赖属性。 (inheritance自FrameworkElement。) Width 获取或设置元素的宽度。 这是一个依赖属性。 (inheritance自FrameworkElement。) 参考: MSDN 任何人都可以指出两者之间的差异,以及何时使用两者之一?
我有一个用户控件,它有一个滚动查看器,然后一堆儿童控制,如文本框,单选button,列表框等内部。 我可以使用鼠标滚轮滚动父滚动查看器,直到我的鼠标落在一个列表框内,然后鼠标滚轮事件开始进入列表框。 有没有办法让列表框发送这些事件回到父控制? 从这个问题的父控件内部移除列表框( 当滚动查看器的子控件时鼠标滚轮不工作 )不是一个解决scheme。 我努力了 void ListBox_PreviewMouseWheel(object sender, MouseWheelEventArgs e) { e.Handled = true; } 但那也没用。 谢谢