For anyone that is interested, here is what i've found so far with Jason
Stangroome's help.
1. Reference Microsoft.Expression.Framework
2. Make your class implement Microsoft.Expression.Framework.IPackage
3. Done, blend will pass in the application context into your class so
that you can interact with blend
You then just need to start blend like so "blend.exe -addin:BurelaAddin.dll"
You can get blend to start the addin automatically with a bit of extra work.
1. Create a manifest text file (BurelaAddin.addin)
2. Put in a single line in the manifest file that points to your .dll
<AddIn AssemblyFile="BurelaAddin.dll" />
3. Putt the manifest file and your dll in a subfolder of your blend
directory called "Addins"
4. Blend will now automatically start your addin
One heads up, there is a difference in how your addin starts up based on how
you start blend
· Starting blend with "Blend.exe -addin:BurelaAddin.dll": Blend will
fully start up and THEN load your addin
· Starting blend by putting addin in /Addins: Blend will start your
addin BEFORE blend has fully initialised. This means you can't do things like
add menu items, as they don't exist yet.
Here is a quick example of how to do this yourself.
public class Class1 : IPackage
{
private IApplicationService _applicationService;
public void Load(IApplicationService applicationService)
{
_applicationService = applicationService;
applicationService.WindowService.Initialized +=
WindowService_Initialized;
//applicationService.CommandBarService.CommandBars[0].Items.AddMenu("Burelamenu",
"Burelamenu"); //will crash if we don't use -addin:
}
void WindowService_Initialized(object sender, EventArgs e)
{
_applicationService.CommandBarService.CommandBars[0].Items.AddMenu("BurelaMenu",
"BurelaMenu"); //Won't crash now, because the app has inited
var fileMenu =
_applicationService.CommandBarService.CommandBars[0].Items[0] as
ICommandBarMenu;
if (fileMenu != null)
fileMenu.Items.AddMenu("BurelamenuItem", "BurelamenuItem");
}
public void Unload()
{
}
}
-David Burela
From: [email protected]
[mailto:[email protected]] On Behalf Of Jonas Follesø
Sent: Tuesday, 2 February 2010 2:19 AM
To: ozSilverlight
Subject: Re: Addins in expression blend 3
Hi David,
I simply haven't found time to get my Colorful add-in up and running on
Expression 3.0.
You are right that the add-in modell changed. It was actually never intended as
a "real" add-in modell, but something used by the expression team to do things
like automated testing.
Anyways, your best bet is to fire up Reflector and start digging around. I did
that some time back, and could find a bomunch of hooks that looks interesting,
so I am sure it is still possible to write add-ins.
Let us know if you find some useful information, as I still need to get mine
updated to 3.0 :)
Good luck!
-jonas
On Mon, Feb 1, 2010 at 5:20 AM, David Burela
<[email protected]<mailto:[email protected]>> wrote:
There doesn't seem to be too much information out there on creating add-ins for
expression blend.
The main add-ins that existed (unify, colourful expression, xaml editor) are
all still compiled for expression blend 2 but the add-in model changed in blend
3, so looking at the source code on codeplex isn't a help.
Anyone got some links to get started?
-David Burela
_______________________________________________
ozsilverlight mailing list
[email protected]<mailto:[email protected]>
http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight
_______________________________________________
ozsilverlight mailing list
[email protected]
http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight