【发布时间】:2013-01-03 17:33:27
【问题描述】:
该应用程序是一个信使,我为此目的使用 microsoft lync 客户端。在其中一种情况下,我在列表视图中获取联系人(这是 LyncClient 的一个对象,具有名称、图像、可用性等属性)并将它们加载到定义如下的数据模板中:
<DataTemplate x:Key="ContactsTemplate">
<Grid HorizontalAlignment="Left" Width="150" Height="150" Margin="10">
<Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}">
<Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
</Border>
<StackPanel VerticalAlignment="Bottom" Background="{Binding Availability, Converter={StaticResource AvailabilityToPresenceColor}}" Opacity="0.75">
<TextBlock Text="{Binding Name}" Foreground="{StaticResource ListViewItemOverlayForegroundThemeBrush}" Style="{StaticResource TitleTextStyle}" Height="20" Margin="15,0,15,15"/>
</StackPanel>
</Grid>
</DataTemplate>
它有 Grid 容器,其中我们有一个图像和文本块控件,它们显示联系人的图像和名称,如下所示,stackpanel 的背景绑定到 lync Contact 对象的可用性属性使用将可用性状态映射到颜色的转换器,例如,当联系人可用性繁忙时,stackpanel 的背景将变为红色。
我也想对图像控件有类似的效果。
我是绑定新手,所以完全迷失在这个绑定概念中。
我的想法是:图像有一个效果事件处理程序,所以我想为此目的使用它并使用
并且在某些情况下在转换器内部我想使用一些我需要获取图像源的代码,但是当我们通过绑定获取图像源时
请提出你的想法。
你可以在代码中看到
<Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title} effect="{Binding Availability, Converter={StaticResource AvailabilityToPresenceColor}}"/>
我只是将图像控件的源绑定到 Contact 对象 的属性。我想将 Contact 对象的可用性属性发送到 IValueConverter 的 Convert 方法,或者如果可能的话,我想将图像与整个 Contact 对象绑定......或者如果有其他方式,请让我知道。
var bitmap = new BitmapImage();
bitmap.BeginInit();
MemoreyStream ms=new MemoryStream(_image);
bitmap.StreamSource = stream;
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.EndInit();
var grayBitmapSource = new FormatConvertedBitmap();
grayBitmapSource.BeginInit();
grayBitmapSource.Source = ms;
grayBitmapSource.DestinationFormat = PixelFormats.Gray32Float;
grayBitmapSource.EndInit();
.....
现在问题是我有 grayBitmapSource,它是 FormatConvertedBitmap 类型的,我不知道如何再次将其转换为 Stream。
【问题讨论】:
-
您可能想看看 WPF 着色器效果库,其中包含可以使用一些触发器应用的单色效果 wpffx.codeplex.com
-
@HighCore 非常感谢您的回复,但问题的意图不是要应用颜色效果或图像处理......我的问题更多与绑定有关,我对绑定有疑问。请再次检查我的问题,您将能够找出我在问什么
标签: c# wpf data-binding binding converter