Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

WPF x:static and brushes/colors

Posted on 2010-11-07
4
Medium Priority
?
1,308 Views
Last Modified: 2013-11-12
I'm working with a training course and it is throwing an error about not completing the exercises propertly.

In a nut shell, I need to define brushes using the x:Static syntax, and while what I wrote works, it is telling me that I'm using the wrong classes.

I built the XAML using this:
<Rectangle Grid.Row="1" Fill="{x:Static SystemColors.GrayTextBrush}"></Rectangle>

And the error is this:
"The Rectangle is not filled with a color from the Colors class."

I've got another one for a border that says:
"The Border element in the SampleWindow.xaml file does not specify a background color using any brush in the Brushes class."


What do I need to change here?
0
Comment
Question by:PixelMuse
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
4 Comments
 
LVL 27

Expert Comment

by:MikeToole
ID: 34083638
Does the course material insist on using the x:static syntax? I would code it as:
<Rectangle Grid.Row="1" Fill="Gray"></Rectangle>

Can you post the xaml for the border that's giving problems
0
 

Author Comment

by:PixelMuse
ID: 34083653
Yes, it says to use the x:static syntax. Here is the whole little layout lesson, so you can see what it is asking for. The border code is there too.
<Window x:Class = "Task.SampleWindow"
		xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
		xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
		Title="SampleWindow" Height="302" Width="574">
	<Grid Name="windowGrid">
		<Grid.RowDefinitions>
			<RowDefinition Height="*" />
			<RowDefinition Height="*" />
		</Grid.RowDefinitions>
        <Border Background="{x:Static SystemColors.HighlightTextBrush }" Padding="5">
            <Button>
                <Button.Background>
                    <ImageBrush ImageSource="logo.gif"/>
                </Button.Background>
            </Button>
        </Border>
        
        <Rectangle Grid.Row="1" Fill="{x:Static SystemColors.GrayTextBrush}"></Rectangle>
            <!--
			Todo:
			The SampleWindow.xaml XAML file declares a single Border element within the
			 <Grid> tags that uses markup extension syntax to specify a background color
			 using any brush in the Brushes class. The Border element has padding of 5 units
			 on each side.
		-->
		<!--
			Hint:
			There are a variety of ways to set the Background property of a Border object, but 
			 you should look at the x:Static reference provided in the links section for an 
			 example of the syntax required.
		-->
		
		<!--
			Todo:
			The Border element declared in the SampleWindow.xaml XAML file contains a Button
		 	 control as a child element. The Button control uses property element syntax to
		 	 set the background property to an ImageBrush Brush with an ImageSource property
		 	 of logo.gif.
		-->

		<!-- 
			Hint 
			To create an ImageBrush brush with ImageSource property of logo.gif
			 you can use the following markup: <ImageBrush ImageSource="logo.gif" />
		-->


		<!--
			Todo:
			The SampleWindow.xaml XAML file declares a Rectangle element within the <Grid>
			 tags, which is filled with any color defined on the Colors class using attribute
			 syntax.
		-->

		<!--
			Todo:
			The Rectangle declared in the SampleWindow.xaml XAML file is assigned to the
			 second row of the containing grid, using attached property syntax.
		-->
		
		<!--
			Hint:
			The rows and columns of a Grid control are identified using a zero-based index. 
			 You should take this into account when assigning a control to a particular row 
			 or column.
		-->

	</Grid>
</Window>

Open in new window

0
 
LVL 27

Accepted Solution

by:
MikeToole earned 2000 total points
ID: 34083812
It asks to select a member of the Brushes class, not SysttemColors, try this:
Fill="{x:Static Brushes.Gray}"
0
 

Author Closing Comment

by:PixelMuse
ID: 34132129
I don't know why I didn't try that. I start typing "Brushes", but intellisense didn't pick it up so I decided not to continue.

Thanks.
0

Featured Post

Learn Veeam advantages over legacy backup

Every day, more and more legacy backup customers switch to Veeam. Technologies designed for the client-server era cannot restore any IT service running in the hybrid cloud within seconds. Learn top Veeam advantages over legacy backup and get Veeam for the price of your renewal

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes how to programmatically preset the "Pages per Sheet" option that's available with most printer drivers.   This setting lets you do "n-Up" printing, where two, four, or more pages are printed on each sheet of paper. If your …
As more and more people are shifting to the latest .Net frameworks, the windows presentation framework is gaining importance by the day. Many people are now turning to WPF controls to provide a rich user experience. I have been using WPF controls fo…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…

618 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question