<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar/14972618?origin\x3dhttp://xmlfeeds.blogspot.com', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

Saturday, August 20, 2005

 

NVIDIA: I want my GeForce Go 6200 TE Vista drivers

I can't enable Aero Glass on my new Toshiba Tecra M4 tablet cause my brand new 128MB graphics card from nVidia doesn't have WGF drivers for Vista. Hey guys - ATI had their Vista drivers yesterday. Where are yours?
UPDATE: Bink.nu had a tip from Neowin that nVidia has put up WGF (LDDM) -compatible drivers for their graphics cards. I have to reinstall&amp;nbsp;Vista cause I screwed up my dual-boot installation. After that's done, I'll post details on how the drivers work on my Tablet. more...

http://www.sebura.com
Originally Posted on 8/20/2005 6:04:37 PMContent source: http://www.longhornblogs.com/robert/archive/2005/07/29/14248.aspx

 

Installing Vista on VirtualPC or Blank Drives

The Release Notes for Vista specify that you can't install Vista on a "RAW" or unpartitioned and unformatted hard drive. That's exactly the kind of drive that VirtualPC creates when you set up a new OS. Fortunately, the release notes have a work around.
Setup in this release of "Longhorn" versions of Windows does not support installing to "RAW" disks (disks without a partition). To work around this issue, install the "Longhorn" version of Windows on a partitioned disk. If you must install to a RAW disk, press SHIFT+F10 to open a command prompt. Use the Diskpart utility to create a disk partition. Restart the computer after creating the partition, and start Setup again. The disk should be available for use.

That should help. The previous workaround was to pop in the Windows XP cd and create a partition with that setup routine. At least this is a tad easier. Just one of the many reasons why Windows Vista Beta 1 is not yet ready for public consumption. more...

http://www.sebura.com
Originally Posted on 8/20/2005 4:54:37 PMContent source: http://www.longhornblogs.com/robert/archive/2005/07/29/14247.aspx

 

While You Were Sleeping...

...Microsoft posted the IE7 beta to MSDN. It's under "Operating Systems | Internet Explorer".

Now all the people who when nuts on the IE blog can stick it. The beta is public now. more...

http://www.sebura.com
Originally Posted on 8/20/2005 3:23:44 PMContent source: http://www.longhornblogs.com/robert/archive/2005/07/28/14240.aspx

 

Windows Vista for IT Professionals

Windows Vista also has a new home on TechNet, where you can find out about Desktop Management, Security and Protection, Deployment, and other new features, specifically designed for IT Professionals. more...

http://www.sebura.com
Originally Posted on 8/20/2005 8:09:21 AMContent source: http://www.longhornblogs.com/robert/archive/2005/07/27/14231.aspx

Thursday, August 18, 2005

 

Just Leaving For Vacation

Just thought I'd let you know I'm taking a vacation in Tuscany, Italy, starting right now and for about 10 to 14 days.

Naturally, I won't be responding my e-mail during this time and won't be posting to the blog, but if there's anything urgent you might need from me feel free to call me at +386 41 560 468.

Enjoy!

How Can RSS Power Your Internet Marketing and Publishing?
Find out more in the most comprehensive and best guide on RSS for marketers, as acclaimed by leading RSS experts, developers, marketers and publishers.
Click here and get the step-by-step guide to taking full marketing advantage of RSS.

more...

http://www.sebura.com
Originally Posted on 8/18/2005 4:46:26 AMContent source: http://feeds.feedburner.com/TheRssDiary?m=260

Wednesday, August 17, 2005

 

ClickZ Doesn't Get RSS Metrics - How We Really Can Measure RSS

Even after all that's been written and explained, even reputable online marketing publications such as ClickZ.com still don't get RSS metrics.

In an otherwise good RSS marketing article, Add RSS to Your Marketing Mix, Heidi Cohen has this to say about RSS metrics:

"From a marketing perspective, RSS's measurability is still evolving and therefore limited. You can't tell who has received your feeds as you can with e-mail."

Yes, RSS's measurability is still evolving and probably will evolve beyond e-mail metrics. In some ways it already has ...

And it's also true that you can't tell who has received your feeds ... if you're using the most established RSS approaches and just the basic technologies.

However, once you connect your feeds with your existing user databases, you can in fact go beyond what e-mail metrics offer.

Here are some possibilities ...

a] Use the "unique feed URL" approach, where each subscriber receives a feed with a unique identifier, based on which you can track precisely what feeds are being requested ... namely what annonymous user is requesting what feed.

b] If you'd like to integrate annonymous feed subscriber data with named (registered) user data, you can easily provide feeds only upon registration or only to logged-in users, and actually connect each unique feed URL with a named user. Especially if you provide feed customization this won't be a problem at all. Once you've integrated this data you can measure every and any iteraction your user has with your feed.

c] If you don't want to force your visitors to register in order to subscribe to your feed, you can still use the unique feed URL approach, which you connect with a user session, cookie or other identifiable information. Once your RSS feed subscriber registers you can integrate the data you already collected based on existing feed interaction and website interaction with his new user account.

d] The other approach you can use is user authentication, where you limit access to your feeds with a username/password combination. If each unique users receives a unique combination, you can track everything based on this information.

There are other possibilities as well, and the actual implementation of those above is somewhat more complicated than it seems at first sight. It does for example also require a more complex internet marketing strategy. It does require using more complex tools than the simplest RSS publishing solutions available on the market. It does require integration with your user database and internet platform.

But the point is that it's not only theoretically possible, but also in praxis. And in fact simple for companies with their own advanced internet platforms.

Just a quick disclaimer ...

a] If your feed gets widely syndicated you can in fact lose view of who's receiving your feed, even if you're using unique feed URLs (you can of course measure this as well, by analyzing user agent data). Using the user authentication model solves this problem as well.

b] Even if your feed does get widely syndicated, that's still comparable to your e-mail messages being passed around by users. And if we take in to account that measuring open-rates is getting increasingly difficult due to users blocking images, e-mail metrics don't look that shiny anymore.

If you'd like to find out more about RSS metrics, simply start by reading our articles in the RSS Metrics section.

I'm also hoping that there'll soon come a time when responses like this will no longer be needed, because marketers will finally understand the power of RSS metrics.

How Can RSS Power Your Internet Marketing and Publishing?
Find out more in the most comprehensive and best guide on RSS for marketers, as acclaimed by leading RSS experts, developers, marketers and publishers.
Click here and get the step-by-step guide to taking full marketing advantage of RSS.

more...

http://www.sebura.com
Originally Posted on 8/17/2005 7:26:01 PMContent source: http://feeds.feedburner.com/TheRssDiary?m=256

 

FeedDigest: An Excellent RSS Radar or NewMastering Tool

I spent some more time with FeedDigest, the tool that helps you display syndicated content on your sites and mix multiple feeds together, and discovered it actually offers much more under the hood than I first anticipated.

The problem the first time was simple: they hide the best features under some very difficult to spot links. But once you really start paying attention you discover that FeedDigest really is a powerful RSS radar creation tool.

a] You start creating your RSS radar by entering the first feed URL in to the new digest form.

b] You're immediately taken to a page with advanced settings:

Basic information, such as digest name.
Item ordering settings and the max number of items to show.
Filtering capabilities, hidden behind a link (you can filter the multiple feeds you're mixing with a search string).
International settings, if you'll be mixing feeds in languages other than English.
Template selection, to define in what HTML template you want the content from the feeds to be displayed in. The best feature is that you can actually create your own templates.
Your account information.

c] After creating your account you get immediate access to all the outputs, which include HTML and JavaScript (to display on your site), and RSS and Atom. They also give you access to a simple piece of PHP code to use to display the digest on your site, instead of JavaScript, which really doesn't do you any good for the search engines.

All in all, a great RSS radar tool. Do we have a market leader in this category here?

How Can RSS Power Your Internet Marketing and Publishing?
Find out more in the most comprehensive and best guide on RSS for marketers, as acclaimed by leading RSS experts, developers, marketers and publishers.
Click here and get the step-by-step guide to taking full marketing advantage of RSS.

more...

http://www.sebura.com
Originally Posted on 8/17/2005 7:05:57 PMContent source: http://feeds.feedburner.com/TheRssDiary?m=259

 

How to Buy RSS Advertising: Setting the Stage

Bill Flitter of Pheedo is starting a series of articles on how to buy RSS advertising, beginning with some basic background information on RSS for marketers.

Unfortunatelly nothing on buying RSS advertising yet, but it's a good intro to RSS marketing.

Especially two interesting points:

"RSS is the new email newsletter
RSS is poised to become an important content delivery mechanism in mainstream media. It will soon represent a permanent and fundamental change in the way information will be shared, viewed and acted upon online. It will reshape the way people interact with the web for several reasons."

"Many publishers catering to the early adopter and tech markets are seeing 40% month-over-month growth rate in their RSS traffic. Some are seeing 50% of their traffic come from their RSS feed, with a corresponding decline in email subscriptions."

How Can RSS Power Your Internet Marketing and Publishing?
Find out more in the most comprehensive and best guide on RSS for marketers, as acclaimed by leading RSS experts, developers, marketers and publishers.
Click here and get the step-by-step guide to taking full marketing advantage of RSS.

more...

http://www.sebura.com
Originally Posted on 8/17/2005 6:38:55 PMContent source: http://feeds.feedburner.com/TheRssDiary?m=257

 

Interested in RSS Publishing and Marketing Solutions? Looking for a co-author ...

Some time ago we started looking for associate authors for various RSS report projects and the response was overwhelming. Actually, we're currently preparing 5 different reports on various RSS marketing.

However, due to a some very positive developements in his life, our partner for the RSS Marketing &amp; Publishing Solutions report had to say farewell.

If you're interested in RSS and most specifically in RSS marketing and publishing solutions, drop me a note at rok.hrastnik@marketingstudies.net

Just might work out:)

How Can RSS Power Your Internet Marketing and Publishing?
Find out more in the most comprehensive and best guide on RSS for marketers, as acclaimed by leading RSS experts, developers, marketers and publishers.
Click here and get the step-by-step guide to taking full marketing advantage of RSS.

more...

http://www.sebura.com
Originally Posted on 8/17/2005 6:38:36 PMContent source: http://feeds.feedburner.com/TheRssDiary?m=255

 

Do Marketers Really Need RSS?

The recent Forrester Research study, which claims that only 2% of online households in North America use RSS, took the internet marketing world by storm. Does this data really mean that marketers can still afford to ignore this channel?

Soon after the Forrrester study became public, I received a press enquiery asking whether marketers should be interested in RSS now that so few online adults use it.

Is this the correct question to ask? Let's take a look at the bigger picture …

1. The Forrester Study Validity

The Forrester study is just one of those available and cannot be considered as the only relevant study, although it was conducted on a sample of 68,000 households.

Jupiter Research estimates RSS penetration at 12% of the American online population, while the latest report from PEW shows that 9% of the American online population has a good idea of what RSS is. An October 2004 PEW study actually estimated RSS penetration at 5%.
It is also important to understand that Forrester data does not include those that might not even be aware they are using RSS, especially through services such as My.Yahoo, which is actually the most popular RSS reader.

Also, at the same time, Forrester Vice President Henry Harteveldt says that "RSS is critical for any organization that wants to reach out to people under the age of 30".

2. The Future Growth of RSS

Regardless of the numbers we put our faith in, the future growth of RSS is without question. Microsoft just recently announced full RSS support in the next edition of their Internet Explorer browser and full RSS integration in the next edition of their operating system, the Windows Vista.

Once RSS becomes easily available to most internet users out-of-the-box and becomes as widely spread as bookmarks, its adoption will grow at an incredible rate. Microsoft has now made sure this in fact will happen.

Consequently, the time for marketers to not only become interested in RSS but also master it is now. Those that test and discover the best possible ways of using RSS for marketing will be ahead of their competition once everyone starts using RSS.

Furthermore, since RSS implementation can actually be free of any charge, there's no reason not to start providing your content in RSS feeds now.

3. Google Shows the Way

Microsoft and Yahoo! aren't the only big players to show support for RSS. Google recently launched RSS advertising as part of their Google AdSense program, giving publishers reason to start their own RSS feeds to generate direct revenues.

Those that depend on Google AdSense for part or all of their online revenues actually need to provide RSS feeds, or stand to lose some of those revenues due to their visitors switching to sites and feeds from their competitors.

Face it, today many users are already starting to request publishers provide them with RSS to subscribe to their content. This trend will only continue, with many users selecting RSS as their primary channel of receiving and reading online content.

4. The Questionable Reliability of E-mail

All marketers today are experiencing e-mail delivery problems, constantly wondering whether their messages are getting through or not. Simply put, e-mail can no longer be relied on.

For one, offering your content via RSS as a supplement to e-mail will help you make certain that at least a portion of your visitors, those that decide for the RSS option, will be receiving all of your content without any doubt.

Lockergnome.com decided to start pushing RSS instead of e-mail some time ago, and as a result saw that their RSS feeds are outperforming e-mail when it comes to clickthrough rates for about 500%. Also an interesting fact, they today have 5 times more RSS subscribers than e-mail subscribers.
And two, for your most important content updates, RSS really is becoming a must, especially if you need to be in contact with your existing customers, partners and other key audiences. If you want to be 100% certain that your messages reach your audience, RSS is the way to go.

5. Other Benefits of RSS

But all of the above don't even touch all the reasons why marketers should start using RSS today …

a) RSS will help you generate additional traffic and reach new audiences. Considering the low cost of RSS implementation, this is reason enough to get started with RSS today.

b) RSS helps you to easily get your content published on other sites, thus generating you more credibility and visitors.

c) As a publisher you can use RSS to display content from other sources, thus making your site more relevant and interesting to your existing visitors.

And the list goes on and on.

RSS may not be mainstream yet, but it provides enough advantages even today to make it a must-choice for marketers.

How Can RSS Power Your Internet Marketing and Publishing?
Find out more in the most comprehensive and best guide on RSS for marketers, as acclaimed by leading RSS experts, developers, marketers and publishers.
Click here and get the step-by-step guide to taking full marketing advantage of RSS.

more...

http://www.sebura.com
Originally Posted on 8/17/2005 2:20:17 PMContent source: http://feeds.feedburner.com/TheRssDiary?m=252

 

How to Make RSS Feeds Work in IE7 and Windows Vista?

The Longorn RSS team just started a work-in-progress, which will become a Windows RSS Publisher's Guide.

They start by providing instructions for RSS Autodiscovery, not exactly something new, but also provide some interesting best practices for this feature.

a] Choose good tiels for your feeds, because IE 7 will display the title as you write it in your autodiscovery tags.

b] Microsoft recommends you select an RSS format and then stick to it, instead of listing the same feeds in different formats, since that will only confuser the user.

c] While you can list as many feeds as you like, you need to make sure that the first one listed is the one most relevant to the page itself.

d] And of course, this one goes without saying, even though you've taken care of RSS Autodiscovery, continue providing links to your feeds in the actual page.

How Can RSS Power Your Internet Marketing and Publishing?
Find out more in the most comprehensive and best guide on RSS for marketers, as acclaimed by leading RSS experts, developers, marketers and publishers.
Click here and get the step-by-step guide to taking full marketing advantage of RSS.

more...

http://www.sebura.com
Originally Posted on 8/17/2005 1:48:16 PMContent source: http://feeds.feedburner.com/TheRssDiary?m=251

 

Easily Publish Syndicated Content or Syndicate Your Own

Robin Good spends another weekend searching for interesting new tools and finds Feed Digest, a tools that allows you to:

a] Display RSS feed content on your site

b] Syndicate your own RSS content to other sites

c] Mix multiple feeds in to a single feed

While the tool doesn't provide any advanced features, it is easy to use and worth checking out.

How Can RSS Power Your Internet Marketing and Publishing?
Find out more in the most comprehensive and best guide on RSS for marketers, as acclaimed by leading RSS experts, developers, marketers and publishers.
Click here and get the step-by-step guide to taking full marketing advantage of RSS.

more...

http://www.sebura.com
Originally Posted on 8/17/2005 1:35:15 PMContent source: http://feeds.feedburner.com/TheRssDiary?m=253

Tuesday, August 16, 2005

 

User Driven E-commerce RSS Feeds

I've been browsing the MSN Sandbox the other day and the MSN Shopping Beta announcement immediately captured my attention with a simple sentence: "User driven RSS feeds, a first for shopping portals."

User driven RSS feeds?

Sounds like something that certainly needs to be taken a look at.

MSN Shopping certainly goes quite far with RSS, giving you access to dynamically customizable RSS feeds directly below each product list.

For example, you're browsing one of the books categories and directly below each specific category you'll find an RSS feed that exactly matches the product list on the screen.

"MSN Shopping will send you up-to-date news whenever a new product is added in the categories you selected. It's simple, it's fast, and it's free!"

Furthermore, by using certain selection criteria to display products on the site, such as Most popular, Highest user rating, Lowest price and so on, the provided RSS feed at the bottom of the screen changes as well, giving you permanent access to the content determined by your criteria.

User friendly? Certainly. A much better way than pushing your customers through several settings screens to set-up their customized RSS feeds.

This way the customer rather "creates his selection" by using the site, seeing his results on the screen and then having the option to directly subscribing to "those" results via RSS. This also works for their search results.

However, MSN could do better promoting the RSS feeds at the bottom, by saying something more compelling and acurate than simply "Add MSN Shopping content to other sites". Yeah, you certainly convinced me with this one ...

How Can RSS Power Your Internet Marketing and Publishing?
Find out more in the most comprehensive and best guide on RSS for marketers, as acclaimed by leading RSS experts, developers, marketers and publishers.
Click here and get the step-by-step guide to taking full marketing advantage of RSS.

more...

http://www.sebura.com
Originally Posted on 8/16/2005 6:22:05 PMContent source: http://feeds.feedburner.com/TheRssDiary?m=249

 

RSS E-book Blows the Competition Out of the Water

As always, just love receiving feedback about the Unleash the Marketing and Publishing Power of RSS e-book:)

"Hello Rok -

Just a note to say I love your material on RSS. (You have new fan here!) IMO, you do a wonderful job of explaining exactly how RSS can help grow a business. One of your articles several weeks ago prompted me to have a look at your site.

I bought both your "Unleash the Marketing and Publishing Power of RSS" and the [competitive print book title removed from the letter] book. From a marketing-relevant standpoint, your book blows the other out of the water.

Anyway, saw another of your articles come through today and thought I'd drop you a line.

Regards,
Bobette Kyle

http://www.WebSiteMarketingPlan.com
Marketing Plan and Web Promotion Information"


How Can RSS Power Your Internet Marketing and Publishing?
Find out more in the most comprehensive and best guide on RSS for marketers, as acclaimed by leading RSS experts, developers, marketers and publishers.
Click here and get the step-by-step guide to taking full marketing advantage of RSS.

more...

http://www.sebura.com
Originally Posted on 8/16/2005 6:07:02 PMContent source: http://feeds.feedburner.com/TheRssDiary?m=248

 

What is RSS?

As a marketer I tend to give descriptions of things from the marketing point-of-view, and that goes for RSS as well. So I thought it would be interesting to have an explanation of RSS from someone who hasn't been professionally deformed by marketing (yet).

Douglas Clifton allowed my to post his "What is RSS?" article here in full. The original version is available on his site.

What is RSS?
If you're new to RSS and need an introduction to help you get started, then this tutorial is a good place to learn some basics. You will also learn how to subscribe to the feeds on loadaverageZero so you can find out what's new around here without having to keep coming back to the site until you want to. That, in a nutshell, is what RSS feeds are all about: Let the information come to you instead of actively searching for it.
Contents

What is RSS?
What are those strange little orange buttons?
What is a News Reader?
What is a News Aggregator Site?
Can I access RSS feeds from my Browser?
What is Auto Discovery?
What is Atom?
RSS Feeds on loadaverageZero
Conclusion and Additional Resources

What is RSS?
RSS stands for Really Simple Syndication or Rich Site Summary, and like a magazine or newspaper, it's a way to supply you with a list of current news items in a brief format so you can scan headlines and choose the items that interest you most. All without visiting the Web sites that publish them. That is, until you want to read the entire article. To do this you just click on the headline like any normal link on a Web site. Since news headlines come to you instead of the other way around, RSS is referred to as content distribution or syndication.
What are those strange little orange buttons?
You will often see that a site has RSS content, or a feed (sometimes called a channel), when you notice a small button (usually an orange color) with the acronym XML or RSS on it. Like this: . The reason you see these XML buttons is because that is the file format that RSS is delivered in, much like Web pages are written in HTML. The orange buttons (or chicklets) are becoming less common however, often times RSS feeds appear as an option on a menu, and some browsers will have a special way of indicating that the site you are visiting has RSS feeds.
However, many browsers are not equipped to handle RSS feeds in this raw XML format. You may have already run across this if you ever clicked on an RSS link and were surprised by a bunch of computer source code instead of a Web page. Or the browser might even have asked you to download the page because it didn't know what else to do with it. What you really need is a way of rendering that code into a readable form.
What is a News Reader?
There are many ways to read news feeds. There are dedicated programs called News Readers, many of them free, that are designed to do this. Have a look at these Reviews if you'd like to learn more about downloading and installing one. Note that many people use the terms news Reader and news Aggregator interchangeably. To avoid any confusion, in my view a reader is a program that runs on your computer (sometimes called desktop software), and an aggregator is an online service. The results are pretty much the same&amp;#8212;once you've subscribed to some feeds, you can browse a list of the latest stories and select the ones you like. Notice I said latest? Items in a feed are always displayed with the most recent ones listed first.
What is a News Aggregator Site?
Another approach is to use an online service, called an News Aggregator, which are also free for the most part. This list of Online Aggregators will help you get started. If you are a member of Yahoo! or MSN, you can also subscribe to and access RSS feeds right from your personal page. More information about popular aggregator services can be found further down on this page.
Can I access RSS feeds from my Browser?
Some browsers, such as Firefox, have plugin programs that allow you to read RSS feeds from right inside the browser. Sage is one such extension, and it is so simple to install and use, that if you're just getting started with RSS consider giving it a try. This screenshot will show you what Sage looks like running inside Firefox. Another handy extension for Firefox is Feedview, which allows you to preview almost any RSS feed without having to subscribe to it first. All you have to do is click on one of those RSS links. Other browsers, such as Safari for Mac, and Opera (which runs on many platforms), have support for reading news feeds already built in, so there's no need to install anything.
What is Auto Discovery?
Many sites, including this one, contain special links to news feeds embedded in the source code of the Web site. This is how a browser is able to determine that a site has feeds, and will usually indicate this through an icon appearing on the browser when you visit such a page. Firefox, for instance, displays a a special icon on the status bar located at the very bottom of the browser:

Note: It is quite possible that the icon will not look exactly like this with your browser, depending on what operating system you are using, any theme (or skin) you may have installed, the browser version, and so forth. The easiest way to find out what these things do is to simply hover your mouse cursor over them.
Many news readers and aggregators can also take advantage of auto-discovery. If you want to subscribe to a feed for a particular site and don't know the address to the feed resource itself, often you can simply enter the address of the Web page and the program will automatically find the feed (or feeds) for you. Just copy the address of the site and paste it into the reader's input box.
What is Atom?
You may have heard about something called Atom and wondered what it is and how it relates to RSS. Atom is just a newer feed format, one that is becoming more popular. As a subscriber this isn't something you need to worry about. Most modern software can cope with the different versions of RSS as well as Atom. The results are basically the same.
Conclusion
There are many other RSS feed aggregator sites. The ones I created links to are popular, and also well designed and easy to use. In fact, I have accounts on all of them. I did this in order to make sure they provide quality services.
I understand that when you first get started using RSS, it may seem to be a bit of a mystery. Or, you may be thinking &amp;#8220;How will using RSS improve my overall Web experience?&amp;#8221; I think that once you get over the hurdle of using RSS feeds this will become readily apparent. If you still have questions about the RSS feeds on loadaverageZero (and in general), feel free to Contact Me. You can also visit the loadaverageZero Discussion Forums where there are 3 Comments on this article.
Additional Resources
For further details on RSS and related topics, Wikipedia is an excellent source of information. For more advanced users, developers and programmers, drx contains a large list of RSS Resources.

Aggregator
Atom
OPML
RSS
XML

Enjoy reading your RSS News feeds!
--- Douglas Clifton

How Can RSS Power Your Internet Marketing and Publishing?
Find out more in the most comprehensive and best guide on RSS for marketers, as acclaimed by leading RSS experts, developers, marketers and publishers.
Click here and get the step-by-step guide to taking full marketing advantage of RSS.

more...

http://www.sebura.com
Originally Posted on 8/16/2005 4:14:01 PMContent source: http://feeds.feedburner.com/TheRssDiary?m=250

 

New RSS Marketing Video

While we're still working on the 2nd edition of Unleash the Marketing &amp; Publishing Power of RSS, we just added a new video presentation (PowerPoint video + audio + demos) to the package.

Length: 1 hour and 20 minutes

1. Why RSS?
2. Is the E-mail Problem Really so Bad?
3. What RSS Will Do For You?
4. The Unique Power of RSS
5. But Does it Really Work?
6. What is RSS?
7. How it Works?
8. The Business Case for RSS
9. Content Delivery Opportunities
10. Discover New Content &amp; Business Opportunities
11. Improve Your Existing Content Delivery Efforts
12. RSS For Direct Marketers
13. The 7-Step RSS Marketing Plan
14. Step 1: Start Using RSS as an End-User
15. Step 2: Plan Your RSS Feeds
16. Step 3: Create a List of Your RSS Marketing/Publishing Requirements
17. Step 4: Choose an RSS Publishing Tool and Create Your First Feed
18. Step 5: Promote Your RSS Feeds Through Your Own Channels
19. Step 6: Promote Your RSS Feeds Through External Channels
20. Step 7: Other Key RSS Activities

The video is available to all new and existing Unleash the Marketing &amp; Publishing Power of RSS customers. Get it here!

[existing customers will get the download info ASAP]

How Can RSS Power Your Internet Marketing and Publishing?
Find out more in the most comprehensive and best guide on RSS for marketers, as acclaimed by leading RSS experts, developers, marketers and publishers.
Click here and get the step-by-step guide to taking full marketing advantage of RSS.

more...

http://www.sebura.com
Originally Posted on 8/16/2005 3:48:00 PMContent source: http://feeds.feedburner.com/TheRssDiary?m=247

 

More Enterprise RSS Examples

InformationWeek has an article with some new and interesting enterprise RSS examples, which especially show that RSS will find its place behind the firewall in the corporate world.

a] Disney ABC Cable Networks Group
Disney, using NewsGator software, which integrates with Microsoft Outlook e-mail clients, uses RSS to avoid the overload of "occupational spam" and to provide employees with live information with links to the original internal reports. In simpler terms, they're using RSS to partially deliver internal information instead of using e-mail.

b] ING Group N.V. (insurance and financial-services company)
ING Group N.V. recently implemented Inc.'s Enterprise Syndication Server to deliver work-related information via RSS. They're basically taking information from their company portals and delivering the latest "headlines" to their employees, without the employees having to actually visit the portals to find out what's new. They're also doing some specialized content deliver to individual specialists from their internal business applications. A good example of this is an RSS channel for the finance department called 30-days-past-due receivables.

c] The Integrated Justice Information Systems Institute
The institute is blogging (and also delivering this information via RSS) to keep committee members up to date on recent developments.

d] New College of California
"New College of California, a small liberal-arts college in San Francisco, has been using KnowNow's LiveServer to coordinate and integrate business-critical reports, some generated manually and some by older computer systems. With RSS, the management and distribution of reports is easier. "These legacy systems depended on having applications installed on your computer," says Mark Gould, a developer in information services at New College. It "helps immensely" that reports can now be read using a browser, he says."

Although these RSS implementations are still quite simple, they greatly aid companies in either reducing contraproductive "e-mail time" or getting content delivered to employees without them having to visit certain portals to find out what's new.

How Can RSS Power Your Internet Marketing and Publishing?
Find out more in the most comprehensive and best guide on RSS for marketers, as acclaimed by leading RSS experts, developers, marketers and publishers.
Click here and get the step-by-step guide to taking full marketing advantage of RSS.

more...

http://www.sebura.com
Originally Posted on 8/16/2005 2:56:59 PMContent source: http://feeds.feedburner.com/TheRssDiary?m=245

Monday, August 15, 2005

 

7 Marketing Tips for Podcasts, Blog Ads, and RSS Feeds

MarketingSherpa.com has another article on RSS marketing, this time based on experience from David Lawrence, host of Online Tonight with David Lawrence.

His tips are simple, yet valuable. Here's my summary:

1. If you want to drive traffic to your site via your RSS feeds, give your RSS readers just enough content to entice them to click on to your site.

2. Be aware of bandwidth issues and the fact that the sheer number of requests for your feed could bring your server down.

3. Keep podcasts from 7 to 10 minutes, but not longer.

4. Keep podcast descriptions as easy to understand as possible.

5. Another podcasting tip: "Get training in being clear spoken and enthusiastic."

6. Blog marketing: don't over-market to your readers.

7. Advertising in your blog: Create conversational, informative and entertaining ads.

As a direct marketing I can't exactly agree with the last tip, especially him saying that "0ffering benefits and features is not going to cut it", but I guess we all have to test for ourselves.

How Can RSS Power Your Internet Marketing and Publishing?
Find out more in the most comprehensive and best guide on RSS for marketers, as acclaimed by leading RSS experts, developers, marketers and publishers.
Click here and get the step-by-step guide to taking full marketing advantage of RSS.

more...

http://www.sebura.com
Originally Posted on 8/15/2005 7:29:51 PMContent source: http://feeds.feedburner.com/TheRssDiary?m=246

 

Test Subject Line

Test post body

Example Link

Sunday, August 14, 2005

 

Creating custom controls, the real way

&amp;nbsp;&amp;nbsp;&amp;nbsp;I know the question has been dodged, and I myself didn't have a firm grasp--but I am back to report on "the way" of creating a custom control.
&amp;nbsp;&amp;nbsp;&amp;nbsp;First of all, be aware that a custom control should be created only as a last option. For the sake of all the work that has gone into Avalon to make controls lookless, you should always evaluate the available controls before contunuing. I believe the true circumstance for a custom control is when you want to package certain ideas together with data. The key word being data. That is really the only reason you create a custom control--you want a common ancestor object without having to rewire the data hook-up everytime. A custom control is not for look-ability. Because, in that sense, you are destroying the lookless metaphor--which is undesirable. You always want that style-ability inherent in Avalon.
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Now you may recall the first step in creating an Avalon application with a custom control is to set the 'UICulture' property in the project settings. This is a temporary work-around for satisfying Avalon's taste for localized apps. To do this, navigate to the project settings file (It will be in the project directory, and called something like "&amp;lt;ProjectName&amp;gt;.csproj"). Open it up in Notepad and it should look like below. Add the bolded line.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;PropertyGroup&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Configuration Condition=" '$(Configuration)' == '' "&amp;gt;Debug&amp;lt;/Configuration&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Platform Condition=" '$(Platform)' == '' "&amp;gt;AnyCPU&amp;lt;/Platform&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;UICulture&amp;gt;en-US&amp;lt;/UICulture&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/PropertyGroup&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&amp;nbsp;&amp;nbsp;&amp;lt;/Project&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;The next step is to create class file (Widget.cs). The only difference between a regular class and this one is the 'partial' decorator. The 'partial' tells .NET that there is another part of this class in a separate fill.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;namespace ApplicationNamespace &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public partial class Widget : ContentControl&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;Although you could inherit from a number of classes, ContentControl best satisfies the fact that we want a control with lookless behavior. In light of that, ContentControl is just a container. Essentially, this allows us the flexibility of the control to hold anything.
&amp;nbsp;&amp;nbsp;&amp;nbsp;Since XAML is the easiest language to describe Avalon elements, it would be a shame to stay in C#. So, go ahead and create a XAML file (Widget.XAML).
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ContentControl x:Class="ApplicationNamespace.Widget"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns="http://schemas.microsoft.com/winfx/avalon/2005"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/ContentControl&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;The above is the second half of the class declared in C#,&amp;nbsp;which now enables us to fully&amp;nbsp;work in XAML.
&amp;nbsp;&amp;nbsp;&amp;nbsp;Continuing on, let's add the custom control to the main Window (the stuff bolded is the important lines that hook it up):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;?Mapping XmlNamespace="controls" ClrNamespace="ApplicationNamespace" ?&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Window x:Class="ApplicationNamespace.Window1"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns="http://schemas.microsoft.com/winfx/avalon/2005"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:cc="controls" &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Grid&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;cc:Widget /&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Grid&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Window&amp;gt;
&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Now, go ahead and set some properties on the custom control:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ContentControl x:Class="ApplicationNamespace.Widget"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns="http://schemas.microsoft.com/winfx/avalon/2005"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ContentControl.Style&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Style&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="ContentControl.Width" Value="200" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="ContentControl.Height" Value="200" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="ContentControl.Background" Value="Red" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Style&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ContentControl.Style&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/ContentControl&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Run the application...You may notice that nothing is visible. The reason is that we did set the properties and we did create the custom control partial class in XAML, but it really isn't being connected with our real class in C#. The reason is that XAML really isn't a language and it must actually be converted into C#. To do this, we need to call&amp;nbsp;InitializeComponent from the constructor of the Widget class:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;namespace ApplicationNamespace &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public partial class Widget : ContentControl&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public Widget()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
InitializeComponent();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;
Even now if you run the application the control won’t show up. The reason is that we may have specified dimensions and a background, but the control cannot set those on content that doesn’t exist, yet. To add a look, we should provide a default template—which is a way of adding a look to our lookless control. The template can be ripped out or styled differently at any time by the application.
&amp;nbsp;
&amp;lt;ContentControl x:Class="ApplicationNamespace.Widget"
&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns="http://schemas.microsoft.com/winfx/avalon/2005"
&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"
&amp;nbsp;&amp;nbsp;&amp;nbsp; Width="200" Height="200" Background="Red"
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ContentControl.Style&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Style&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="ContentControl.Width" Value="200" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="ContentControl.Height" Value="200" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="ContentControl.Background" Value="Red" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="ContentControl.Template"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter.Value&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ControlTemplate&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid Background="{TemplateBinding Property=Background}"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ControlTemplate&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Setter.Value&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Setter&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Style&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ContentControl.Style&amp;gt;
&amp;lt;/ContentControl&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;

Going back to the class, let’s add some data through a property WidgetData—which returns a simple string “Red”. This is the data we are going to expose with our custom control (the essence of it):

&amp;nbsp;&amp;nbsp;&amp;nbsp;public partial class Setter Property="ContentControl.Template"&amp;gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter.Value&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ControlTemplate&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid Background="{TemplateBinding Property=Background}"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock TextContent="{Binding Path=WidgetData,RelativeSource=/TemplatedParent}" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ControlTemplate&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Setter.Value&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Setter&amp;gt;
I am binding the value to the TextBlock.TextContent property. The reason I have specified RelativeSource as ‘/TemplatedParent’ is that the Binding statement will not have any data context without RelativeSource. There are a couple of other values which can be automatically determined by Avalon at runtime. They all start with a forward slash ‘/’ and refer to common paths. ‘TemplatedParent’ gets us the main element that the ControlTemplate is modifying—which is the Widget class.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;



&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns="http://schemas.microsoft.com/winfx/avalon/2005"
&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"
&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:cc="controls"
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Window.Resources&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Style x:Key="WidgetStyle"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="Control.Template"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter.Value&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ControlTemplate&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid Background="{Binding Path=WidgetData,RelativeSource=/TemplatedParent}" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ControlTemplate&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Setter.Value&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Setter&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Style&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Window.Resources&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;cc:Widget Style="{StaticResource WidgetStyle}" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;
&amp;lt;/Window&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; more...

http://www.sebura.com
Originally Posted on 8/14/2005 4:13:36 PMContent source: http://longhornblogs.com/rdawson/archive/2005/06/14/14180.aspx

 

Rich Media Experiences Lacking

&amp;nbsp;&amp;nbsp;&amp;nbsp;TV is neat because many things are hand coded with explicit pixel positions and absolutes that are composited together to get an intended effect that looks incredible and visually enjoyable.
&amp;nbsp;&amp;nbsp;&amp;nbsp;I once thought Avalon was also going to be neat because we could do similar things. Not the hand coding, though. Yet, I have found that applying animation transitions and niceties is hard--almost to the point where it is best to do it like TV. The grid panel is awesome, which you may remember is the opposite of what I thought before. But, It really allows for an incredible layout. Back to the point, though--when you want to add these custom animation transitions and effects, usually, no make that almost always, you have to break down those nice layouts and go to back to absolute positioning on the Canvas. You also have a big problem trying to get controls (and their shapes) clipped so as to not cover up functionality behind. This means you have to play a game of promoting and demoting things in the Z order--which I would think adds some un-needed overhead.
&amp;nbsp;&amp;nbsp;&amp;nbsp;The thing is that objects and shapes on screen should be able to fly around, link up, decouple, change Z order&amp;nbsp;without having to change the panel children order, and transitioning between shapes easily. Exactly like things on TV. The channel I most want to mimic is MSNBC (the stock channel). They have cool things going on: background animations using 3D and blurring, polished look and feel, and presentation of both information and usefulness in the same package.
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;I am not trying to rag on Avalon, because I love it. I mean, how could I criticize something that is superior to anything else in existence. I can't. But, on the same token it seems like trying to build these experiences that I want are harder than I would have thought.
&amp;nbsp;&amp;nbsp;&amp;nbsp;Here is something I want to do:
&amp;nbsp;&amp;nbsp;&amp;nbsp;Imagine I have a Window with a button in the middle (the button is gel styled). I want to click the button and have it so that the screen seamlessly transitions from being a button in the middle to a new form with many controls and information. I can imagine the button getting bigger until it is half the size of the new form, at which time the background fades from the button color to the new form color and the controls on the new form start to appear. This is a simple example of something I want to do (simple). But, I find this hard.
&amp;nbsp;&amp;nbsp;&amp;nbsp;Have the designers of Avalon thought of these scenarios? Like I said, I don't mean to criticize, but&amp;nbsp;just bring it to the table... more...

http://www.sebura.com
Originally Posted on 8/14/2005 12:45:00 PMContent source: http://longhornblogs.com/rdawson/archive/2005/06/06/14163.aspx

 

Rich Media Experiences Lacking

&amp;nbsp;&amp;nbsp;&amp;nbsp;TV is neat because many things are hand coded with explicit pixel positions and absolutes that are composited together to get an intended effect that looks incredible and visually enjoyable.
&amp;nbsp;&amp;nbsp;&amp;nbsp;I once thought Avalon was also going to be neat because we could do similar things. Not the hand coding, though. Yet, I have found that applying animation transitions and niceties is hard--almost to the point where it is best to do it like TV. The grid panel is awesome, which you may remember is the opposite of what I thought before. But, It really allows for an incredible layout. Back to the point, though--when you want to add these custom animation transitions and effects, usually, no make that almost always, you have to break down those nice layouts and go to back to absolute positioning on the Canvas. You also have a big problem trying to get controls (and their shapes) clipped so as to not cover up functionality behind. This means you have to play a game of promoting and demoting things in the Z order--which I would think adds some un-needed overhead.
&amp;nbsp;&amp;nbsp;&amp;nbsp;The thing is that objects and shapes on screen should be able to fly around, link up, decouple, change Z order&amp;nbsp;without having to change the panel children order, and transitioning between shapes easily. Exactly like things on TV. The channel I most want to mimic is MSNBC (the stock channel). They have cool things going on: background animations using 3D and blurring, polished look and feel, and presentation of both information and usefulness in the same package.
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;I am not trying to rag on Avalon, because I love it. I mean, how could I criticize something that is superior to anything else in existence. I can't. But, on the same token it seems like trying to build these experiences that I want are harder than I would have thought.
&amp;nbsp;&amp;nbsp;&amp;nbsp;Here is something I want to do:
&amp;nbsp;&amp;nbsp;&amp;nbsp;Imagine I have a Window with a button in the middle (the button is gel styled). I want to click the button and have it so that the screen seamlessly transitions from being a button in the middle to a new form with many controls and information. I can imagine the button getting bigger until it is half the size of the new form, at which time the background fades from the button color to the new form color and the controls on the new form start to appear. This is a simple example of something I want to do (simple). But, I find this hard.
&amp;nbsp;&amp;nbsp;&amp;nbsp;Have the designers of Avalon thought of these scenarios? Like I said, I don't mean to criticize, but&amp;nbsp;just bring it to the table... more...

http://www.sebura.com
Originally Posted on 8/14/2005 12:45:00 PMContent source: http://longhornblogs.com/rdawson/archive/2005/06/06/14163.aspx

 

Sizing Paths

I had a Path (System.Windows.Shapes.Path) that I wanted to show, but it wasn't exactly clear as to how I was going to size it because there aren't any dimension properties to modify.
So, simple enough, I plopped it in-between some Viewbox tags, and I was able to size it to my requirements.
&amp;lt;StackPanel Orientation="Horizontal"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Path Stroke="#000000" Fill="#000000" StrokeThickness="16" Data="M9,12.844v71l216,72l-217,72v71l290-144L9,12.844z"/&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Viewbox Width="30" Height="30"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Path Stroke="#000000" Fill="#000000" StrokeThickness="16" Data="M9,12.844v71l216,72l-217,72v71l290-144L9,12.844z"/&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Viewbox&amp;gt;
&amp;lt;/StackPanel&amp;gt;
You can see the difference:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; more...

http://www.sebura.com
Originally Posted on 8/14/2005 12:19:00 PMContent source: http://longhornblogs.com/rdawson/archive/2005/06/03/14155.aspx

 

Using Animation (Emphasis on splines)


Animations are enumerated by type: double, point, color, etc...
Animations support simple (To, From), complex (key frame values:&amp;nbsp;value1, value2, value3...), and user-defined (explicit path)&amp;nbsp;scenarios...


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Animations named for simple are: &amp;lt;type&amp;gt;Animation
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Animations named for complex are: &amp;lt;type&amp;gt;AnimationUsingKeyFrames
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Animations names for user-defined are &amp;lt;type&amp;gt;AnimationUsingPath
Inside complex animations, there are 3 different progression techniques:


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;discrete (jumps to values with no in-between values)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;linear (line progression from value to value)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;spline (spline curve progression with 2 control points)
User-defined animations are specified using a Path geometry
&amp;nbsp;
Here is a sample using DoubleAnimationUsingKeyFrames:
&amp;lt;Style x:Key="Style1"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Setter Property="Button.Background"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Setter.Value&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;LinearGradientBrush StartPoint="0,0" EndPoint="0,1"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;LinearGradientBrush.GradientStops&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;GradientStop Color="Pink" Offset="0" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;GradientStop Color="Red" Offset="1" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/LinearGradientBrush.GradientStops&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/LinearGradientBrush&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Setter.Value&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Setter&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Setter Property="Control.Template"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Setter.Value&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ControlTemplate&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Grid x:Name="grid"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Grid.RenderTransform&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;TranslateTransform X="0" Y="0" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Grid.RenderTransform&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Rectangle Fill="{TemplateBinding Property=Background}" RadiusX="5" RadiusY="5" Margin="2" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Grid&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ControlTemplate.Triggers&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;EventTrigger RoutedEvent="Mouse.MouseEnter"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;EventTrigger.Actions&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;BeginAction TargetName="MouseEnterTimeline2" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/EventTrigger.Actions&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/EventTrigger&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/ControlTemplate.Triggers&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ControlTemplate.Storyboards&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ParallelTimeline Name="MouseEnterTimeline" BeginTime="*null" Duration="Forever"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;SetterTimeline TargetName="grid" Path="(Grid.RenderTransform).(TranslateTransform.X)" FillBehavior="HoldEnd"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;DoubleAnimationUsingKeyFrames Duration="0:0:1.3" FillBehavior="HoldEnd"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;DoubleAnimationUsingKeyFrames.KeyFrames&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;SplineDoubleKeyFrame Value="10" KeyTime="0:0:0.7" KeySpline="0,1 0,0" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;SplineDoubleKeyFrame Value="40" KeyTime="0:0:1" KeySpline="0,1 0,0" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;SplineDoubleKeyFrame Value="50" KeyTime="0:0:1.3" KeySpline="0,1 0,0" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/DoubleAnimationUsingKeyFrames.KeyFrames&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/DoubleAnimationUsingKeyFrames&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/SetterTimeline&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;SetterTimeline TargetName="grid" Path="(Grid.RenderTransform).(TranslateTransform.Y)" FillBehavior="HoldEnd"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;DoubleAnimationUsingKeyFrames Duration="0:0:1.3" FillBehavior="HoldEnd"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;DoubleAnimationUsingKeyFrames.KeyFrames&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;SplineDoubleKeyFrame Value="10" KeyTime="0:0:1.3" KeySpline="0,1 1,1" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/DoubleAnimationUsingKeyFrames.KeyFrames&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/DoubleAnimationUsingKeyFrames&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/SetterTimeline&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/ParallelTimeline&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/ControlTemplate.Storyboards&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/ControlTemplate&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Setter.Value&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Setter&amp;gt;
&amp;lt;/Style&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
more...

http://www.sebura.com
Originally Posted on 8/14/2005 11:32:01 AMContent source: http://longhornblogs.com/rdawson/archive/2005/05/27/14135.aspx

 

Using VisualBrush

Essentially, here is the bag:
&amp;nbsp;&amp;nbsp;&amp;nbsp;-Brush
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-GradientBrush
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-LinearGradientBrush
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-RadialGradientBrush
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-SolidColorBrush
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-TileBrush
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-DrawingBrush
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-ImageBrush
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-VisualBrush
&amp;nbsp;
This VisualBrush allows you to turn a UIElement (Control) into a brush and render it onto anything (since it is a brush)...
&amp;lt;StackPanel&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;StackPanel.LayoutTransform&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ScaleTransform Center="0,0" ScaleX="6" ScaleY="6" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/StackPanel.LayoutTransform&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Button Style="{StaticResource ButtonStyle}" Name="button1"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Button.Content&amp;gt;Hello&amp;lt;/Button.Content&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Button&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Button Name="button2" Click="Button2Click"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Button.Content&amp;gt;2&amp;lt;/Button.Content&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Button&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Button Name="button3" Background="Green"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Button.Content&amp;gt;3&amp;lt;/Button.Content&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Button&amp;gt;
&amp;lt;/StackPanel&amp;gt;
private void Button2Click(object sender, RoutedEventArgs e)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VisualBrush brush = new VisualBrush(this.button1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.button2.Background = brush;
}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; more...

http://www.sebura.com
Originally Posted on 8/14/2005 8:12:54 AMContent source: http://longhornblogs.com/rdawson/archive/2005/05/26/14130.aspx

This page is powered by Blogger. Isn't yours?