我想在mouseEnter事件觸發時更改元素的背景顏色。如何使背景的顏色變深?我以爲我可以使用不透明面具,但它是一個漸變,但我需要它是堅實的。它也必須在可視化的基本代碼中,而不是在xaml中。 請幫幫我!變暗元素顏色
Q
變暗元素顏色
3
A
回答
2
不透明度蒙版不是一個非常好的選項,因爲它可以修改不透明度。此外,不透明遮罩可以是任何類型的畫筆,它不一定是漸變。
您可以執行以下兩項操作之一:操作當前畫筆或在控件頂部添加黑色矩形並更改矩形的不透明度。
如果你讓我知道你喜歡什麼,我可以寫一些代碼。
(爲什麼它必須是代碼,而不是XAML?)
編輯
<Window x:Class="TestWpfApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TestWpfApplication"
Title="MainWindow"
Height="350"
Width="525">
<StackPanel>
<Grid>
<TextBox Background="Red"
FontSize="24" />
<Rectangle x:Name="overlay"
Fill="Black"
IsHitTestVisible="False"
Opacity="0" />
<Grid.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation To="0.9"
Duration="0:0:0.2"
Storyboard.TargetName="overlay"
Storyboard.TargetProperty="(Rectangle.Opacity)" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation To="0"
Duration="0:0:0.2"
Storyboard.TargetName="overlay"
Storyboard.TargetProperty="(Rectangle.Opacity)" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Grid.Triggers>
</Grid>
</StackPanel>
</Window>
1
我可能會使用這個ValueConverter
。最近使用該轉換器來改變不透明度:
public class ChangeColorOpacityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
Color input = (Color)value;
input.A = byte.Parse((string)parameter); //Changes alpha to ValueConverterParameter
return input;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
}
你可以改變這個變暗的顏色,只是由兩個把所有顏色通道爲例。
VC用法示例:
<Border>
<Border.Resources>
<vc:DarkenColorConverter x:Key="DarkenColorConverter"/>
</Border.Resources>
<Border.Background>
<SolidColorBrush Color="{Binding MyColor, Converter={StaticResource DarkenColorConverter}}"/>
</Border.Background>
</Border>
如果你利用你需要指定爲ConverterParameter
綁定值參數。
相關問題
- 1. 減:變暗元素上已經設置的任何顏色
- 2. Javascript變暗背景顏色
- 3. OpenGL顏色/ alpha輸出稍微變暗
- 4. 折線圖填充顏色變暗
- 5. 爲UIToolBarButtons禁用變暗顏色
- 6. 顏色混合 - 變暗模式
- 7. 如何讓元素的顏色更加黑暗:懸停?
- 8. RGB 24位到16位顏色轉換 - 顏色變暗
- 9. SASS - 使用顏色變暗,而無需使用顏色
- 10. 使geom_text顏色比geom_point顏色更暗
- 11. 改變wordpress主題元素的顏色
- 12. jsColor.js改變元素的背景顏色
- 13. 文字元素背景顏色變化
- 14. 打印時改變元素的顏色
- 15. XUL暗含元素
- 16. 取色mjolnic.com自定義元素的顏色變化
- 17. 加載動畫期間變暗/昏暗的背景元素 - Android
- 18. 灰度的蟒蛇 - incorect顏色暗灰色變爲淺灰色到深灰色
- 19. 防止改變顏色的單元格再次改變顏色
- 20. 基於php變量改變a:before元素的背景顏色
- 21. 打開菜單上的頁面變暗與rgba不昏暗的文字顏色
- 22. iPhone上的顏色顯示比顏色值更暗
- 23. 設置對話框的「暗淡」顏色
- 24. ColdFusion/Dreamweaver的顏色黑暗方案?
- 25. Eclipse黑暗主題箭頭顏色
- 26. Javascript計算較暗的顏色
- 27. 改變顏色的顏色
- 28. 亮或者變暗十六進制顏色
- 29. 黑暗風格鍵盤的背景顏色變淺
- 30. 動態改變顏色形式的燈光到黑暗
好的,你能告訴我一個例子,使一個紅色的矩形變暗嗎?這兩種選擇有什麼區別?似乎添加一個矩形會更慢。它必須以代碼形式存在,因爲這些元素是無形地添加的。 – Cobold 2011-05-08 18:45:16
@Cobold:動態添加項目通常並不意味着您需要在WPF中編寫代碼隱藏功能才能正確顯示它們。 – 2011-05-08 18:49:02
@ H.B。那麼如何才能將矩形的填充更改爲只在xaml中更深,如果您沒有設置屬性的話,那麼該怎麼辦? – Cobold 2011-05-08 18:52:16