By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,856 Members | 2,004 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,856 IT Pros & Developers. It's quick & easy.

using CodeDom to create XAML windows

P: n/a
will CodeDom create XAML windows or just regular windows forms?

If so, how to I tell it to create a xaml window instead of a windows form?

thanks

--
mo*******@noemail.noemail
Mar 26 '07 #1
Share this Question
Share on Google+
6 Replies


P: n/a
moondaddy <mo*******@noemail.noemailwrote:
will CodeDom create XAML windows or just regular windows forms?

If so, how to I tell it to create a xaml window instead of a windows form?
Just change which type it's creating - can you give us a sample of your
current CodeDom code?

There's no such thing as a XAML window really - just the new WPF
classes, which often happen to be loaded using XAML.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Mar 26 '07 #2

P: n/a
I don't have any codedom code yet. I'm just trying to figure out where to
start. I rolled my own code-gen tool which writes the data access and
business classes, and now I'm attacking the UI tier and wanted to use WPF
windows. I found a codedom sample at:
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_fxsamples/local/sampleexecutables/Applications/CodeDOMSample.zip

which seemed to be way more complicated than it should be. If I cant find
any clean samples using codedom to create WPF classes, then I will probable
add the initial class via VS to the project (someWindow.xaml) and generate
the xaml and cs code behind with my tool and just paste it in.

Actually, all I need to do is create 'someWindow.xaml' via codedom so that
all the hidden classes are created for me, then my tool can overwrite the
someWindow.xaml and someWindow.cs files with my custom code.
"Jon Skeet [C# MVP]" <sk***@pobox.comwrote in message
news:MP************************@msnews.microsoft.c om...
moondaddy <mo*******@noemail.noemailwrote:
>will CodeDom create XAML windows or just regular windows forms?

If so, how to I tell it to create a xaml window instead of a windows
form?

Just change which type it's creating - can you give us a sample of your
current CodeDom code?

There's no such thing as a XAML window really - just the new WPF
classes, which often happen to be loaded using XAML.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too

Mar 26 '07 #3

P: n/a
OK here's my sample code. I dont see where or how to change the type to a
xaml window object.
static void Main(string[] args)
{

CodeCompileUnit compileUnit = new CodeCompileUnit();
CodeNamespace ns = new CodeNamespace("WarpCode");
compileUnit.Namespaces.Add(ns);
GenerateCSharpCode(compileUnit);
}

public static String GenerateCSharpCode(CodeCompileUnit compileunit)
{
// Generate the code with the C# code provider.
CSharpCodeProvider provider = new CSharpCodeProvider();

// Build the output file name.
string path =
@"D:\nwis\Apps\ConsoleApplication3\ConsoleApplicat ion3\tmpCode\";
String sourceFile;
if (provider.FileExtension[0] == '.')
{
sourceFile = "HelloWorld" + provider.FileExtension;
}
else
{
sourceFile = "HelloWorld." + provider.FileExtension;
}

provider.GetTypeOutput

// Create a TextWriter to a StreamWriter to the output file.
IndentedTextWriter tw = new IndentedTextWriter(
new StreamWriter(path + sourceFile, false), " ");

// Generate source code using the code provider.
provider.GenerateCodeFromCompileUnit(compileunit, tw,
new CodeGeneratorOptions());

// Close the output file.
tw.Close();

return sourceFile;
}


"Jon Skeet [C# MVP]" <sk***@pobox.comwrote in message
news:MP************************@msnews.microsoft.c om...
moondaddy <mo*******@noemail.noemailwrote:
>will CodeDom create XAML windows or just regular windows forms?

If so, how to I tell it to create a xaml window instead of a windows
form?

Just change which type it's creating - can you give us a sample of your
current CodeDom code?

There's no such thing as a XAML window really - just the new WPF
classes, which often happen to be loaded using XAML.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too

Mar 26 '07 #4

P: n/a
moondaddy <mo*******@noemail.noemailwrote:
OK here's my sample code. I dont see where or how to change the type to a
xaml window object.
Again, there's no such thing as a "xaml window object". If your sample
code compiled and produced a WinForms application, it would be easier
to show the equivalent using a WPF window - but as it is, there's
nothing significant in there to change.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Mar 26 '07 #5

P: n/a
Hi,

Code Document Object Model(CodeDOM) enables developers of programs that
emit source code to generate source code in multiple programming languages
at run time, based on a single model that represents the code to render.

We could use CodeDOM to generate the source code behind the UI tier, as you
have done. But as for a WPF window, since it is made up of XML without any
source code, we should not generate its content using CodeDOM. To geneate
an XML file, we could use System.Xml.XMLWriter class.

Note that you should save the XML file as *. xaml.

For more information on how to create XML writers, you may visit the
following link.

'Creating XML Writers'
http://msdn2.microsoft.com/en-us/library/kkz7cs0d.aspx

Hope this helps.
If you have anything unclear, please feel free to let me know.

Sincerely,
Linda Liu
Microsoft Online Community Support

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.

Mar 27 '07 #6

P: n/a
Thanks. thats what i needed to know.

"Linda Liu [MSFT]" <v-****@online.microsoft.comwrote in message
news:b6**************@TK2MSFTNGHUB02.phx.gbl...
Hi,

Code Document Object Model(CodeDOM) enables developers of programs that
emit source code to generate source code in multiple programming languages
at run time, based on a single model that represents the code to render.

We could use CodeDOM to generate the source code behind the UI tier, as
you
have done. But as for a WPF window, since it is made up of XML without any
source code, we should not generate its content using CodeDOM. To geneate
an XML file, we could use System.Xml.XMLWriter class.

Note that you should save the XML file as *. xaml.

For more information on how to create XML writers, you may visit the
following link.

'Creating XML Writers'
http://msdn2.microsoft.com/en-us/library/kkz7cs0d.aspx

Hope this helps.
If you have anything unclear, please feel free to let me know.

Sincerely,
Linda Liu
Microsoft Online Community Support

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no
rights.

Mar 27 '07 #7

This discussion thread is closed

Replies have been disabled for this discussion.