2012-03-20 4 views
0

Я хочу раскрасить Polygon ...раскраской Polygon

Это Polygon в моем Compass.xaml:

<Polygon x:Name="arrow" Points="5, 90 35, 90 35, 160 65, 160 65, 90 95, 90 50, 5" Stroke="Black" StrokeThickness="4" Fill="White" Margin="42,32,184,0" Grid.Column="1" Grid.ColumnSpan="2" Height="163" VerticalAlignment="Top"> 
    <Polygon.RenderTransform> 
     <RotateTransform x:Name="rotateArrow" Angle="0" CenterX="50" CenterY="160" /> 
    </Polygon.RenderTransform> 
</Polygon> 

И это, где я получаю цвет от:

Channel lbi = (Channel) GlobalVariables.ChannelList[Channelindex]; 

lbi.Color => "0xED1C24" 

Теперь я должен заполнить этот многоугольник с этим цветом ...

Я пытался сделать это с

arrow.fill('blue'); 

(Просто случайный цвет, чтобы попробовать, если он будет работать.), Но это не работает ...

Может кто-нибудь помочь мне?

EDIT:

ОК, сейчас это работает.

string[] colorsplit = currentChannel.Color.Split('x'); 
arrow.Fill = GetColorFromHexa("#FF"+colorsplit[1]); 

Проблема в том, что я не знал, что я должен положить #FF перед строкой ..

+1

на основе следующих: http://stackoverflow.com/questions/4305968/windows-phone-7-dynamically-set-button-background-color-from-hex: Вы можете использовать arrow.Fill = GetColorFromHexa ("# FFED1C24"); –

+0

Я не уверен, что цвет, который я получаю, это цвет Hexa ... это действительно не работает. – MrTouch

+0

Если вы не уверены, что получаете цвет, то почему вы пытаетесь заполнить его полигоном? –

ответ

2

C#?

arrow.Fill = new SolidColorBrush(System.Windows.Media.Colors.Blue); 
+0

это работает, но, как я уже сказал, мне нужно сделать это с информацией о цвете: «0x945316» – MrTouch

+0

arrow.Fill = new SolidColorBrush (System.Windows.Media.Color.FromRgb (0x94,0x53, 0x16)); – paul

+0

, когда я делаю это, он просто становится черным .. не имеет значения, какие значения я беру ... – MrTouch