图像替换FormatConvertedBitmap我很新的WPF和问题如下。基于的datacontext价值
按钮与图片真的应该表现得像那些的WinForms - 变灰禁用时(以一些建议为图像设置不透明度不够的,因为它的叶子颜色)。
所以我发现一段代码:
<Image RenderOptions.BitmapScalingMode="NearestNeighbor" Height="20" Width="20"
Opacity="{Binding SelectedItem, Converter={StaticResource selectedItemPresent}}">
<Image.Source>
<FormatConvertedBitmap DestinationFormat="Gray8">
<FormatConvertedBitmap.Source>
<BitmapImage UriSource="Images/edit_info.png" />
</FormatConvertedBitmap.Source>
</FormatConvertedBitmap>
</Image.Source>
<Image.OpacityMask>
<ImageBrush>
<ImageBrush.ImageSource>
<BitmapImage UriSource="Images/edit_info.png">
</ImageBrush.ImageSource>
</ImageBrush>
</Image.OpacityMask>
</Image>
这将产生变灰按钮和工作是成功的一半。 (转换器只是基于数据绑定的项目值返回1或0.3)。
但是我真正需要的是仅在选定项目为空时将其变灰。
所以,我有两个问题。 1.如何根据数据上下文值应用所有这些东西?可能会创建另一个转换器。 然后,我将不得不以编程方式执行此声明xaml?或者我可以在xaml中定义一些规则,所以只有在规则触发时,部分才会有效?
2,本应做几个按钮 - 这怎么能逻辑可以分解出来(我看到有关项目的一些style.xaml - 就是把它放在哪里)?
感谢审议。
,我是很新的WPF。那么,我如何通过那些需要它的按钮来引用这个样式(不是所有的按钮) - 我看到按钮上有一个Style属性,但在Style标签中没有看到类似Name属性的东西。而且,对于一个按钮,图像是相同的,无论其是启用还是禁用。只需要将其变灰。但是我明白你的观点 - 只需将移动到Style.Triggers,对吧?但是,每个按钮都有自己的图像源,那么我怎样才能将其替换为样式? –
Nickolodeon
2012-01-04 19:29:48
@Nickolodeon你可以给你的风格,例如键'<形式X:键= ImageButtonStyle ... />'然后将其应用到特定的按钮'<按钮样式= “{StaticResource的ImageButtonStyle}”'。如果启用和禁用的图片都是相同的,只需从样式中删除这些图片,并设置每个按钮的'',而不是在样式中设置该值。 –
Rachel
2012-01-04 19:38:05
实际上我有类似于 – Nickolodeon 2012-01-04 19:43:53