2015-10-12 7 views
0

Это очень простой вопрос. Я хочу иметь возможность добавлять форму, определяющую различную непрозрачность для заливки и штриха. Если добавить это:Форма WPF отличается непрозрачностью для штрихов и заполнения

Ellipse e = new Ellipse(); 
e.Width = e.Height = 150; 
e.Stroke = Brushes.Aqua; 
e.Fill = Brushes.Chartreuse; 
e.StrokeThickness = 20; 
e.Opacity = .25; 
plotCanvas.Children.Add(e); 

можно установить только 1 непрозрачности. Вместо этого я хотел бы, чтобы заливка была 0,25 непрозрачной, а штрих был 1,0 непрозрачным. Спасибо Патрик

+0

Сообщите нам что ты хочешь делать? Это может иметь совсем другое решение. – niksofteng

ответ

5

Установка непрозрачности на эллипсе задает непрозрачность для всего элемента управления. То, что вы хотите сделать, это создать специальные кисти для заливки и обводки, а также контролировать непрозрачность на кисти, то есть:

SolidColorBrush strokeBrush = new SolidColorBrush(Colors.Aqua); 
strokeBrush.Opacity = .25d; 

В качестве альтернативы, вы можете контролировать альфа-канал кисти:

SolidColorBrush strokeBrush = new SolidColorBrush(Color.FromArgb(/*a, r, g, b*/)); 
0
<Ellipse Stroke="Red" Width="200" Height="100" StrokeThickness="5"> 
    <Ellipse.Fill> 
     <SolidColorBrush Color="Green" Opacity=".25"></SolidColorBrush> 
    </Ellipse.Fill> 
</Ellipse> 

Или в C# вы можете установить заливку нового SolidColorBrush с желаемой непрозрачностью для свойства непрозрачности.

-1

Вы не можете установить непрозрачность дважды для одного объекта Shape. Insteaf настройки непрозрачности дважды вы можете добавить границу к вашему Ellipse:

<Canvas x:Name="MyCanvas" Width="1000" Height="1000" Background="White"> 
    <Border BorderBrush="Black" Opacity="1" BorderThickness="10" CornerRadius="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight}"> 
     <Ellipse Height="150" Width="150" Fill="Black" Opacity="0.25"></Ellipse> 
    </Border> 

Но поскольку граница представляет собой прямоугольник, охватывающий эллипс, вам также необходимо установить cornerradius

 Смежные вопросы

  • Нет связанных вопросов^_^