WPF, love it or hate it?
-
WPF sounds like a good idea, but I'm wondering if it's worth the learning curve. Has anyone here actually used it successfully? Any positive or negative comments?
DP
I am not that exposed to WPF. I only know theoretical bits of it. Perhaps there is the advantage of the UI and the app's logic being separate so that it becomes easy to maintain the application. But I ask my self, how does this fact become really useful to us? Perhaps at design time you can have separate people working on the logic and the UI... And once the application is deployed I just don't understand how this detached nature is practical, especially if you are thinking of a desktop application? These are just my thoughts. However if I do find some good motive I'll try moving towards it...
-
Norm .net wrote:
Winforms that uses a custom listview for output/results, using the listview in WPF is 50% slower
Actually it should not. You might have to reconsider the way you use the listview. I do not know what kind of tests you have done to come up with this number, but it is not justified. (And no you do not have to use directx to re-implement a listview)
Pierre Leclercq wrote:
but it is not justified
Oh but I HAVE Conclusive evidence,
<ListView IsSynchronizedWithCurrentItem="False" x:Name="ResultsGrid" Background="#FF383838" Foreground="#FFFFFFFF" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Standard" Width="Auto" Height="Auto"> <ListView.View> <GridView> <GridViewColumn/> </GridView> </ListView.View> </ListView>
Here's the styling
<Style x:Key="ListViewItemFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Stroke="#8E6EA6F5" StrokeThickness="1" RadiusX="2" RadiusY="2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<LinearGradientBrush x:Key="ListItemHoverFill" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFF1FBFF" Offset="0"/>
<GradientStop Color="#FFD5F1FE" Offset="1"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="ListItemSelectedFill" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFD9F4FF" Offset="0"/>
<GradientStop Color="#FF9BDDFB" Offset="1"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="ListItemSelectedInactiveFill" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFEEEDED" Offset="0"/>
<GradientStop Color="#FFDDDDDD" Offset="1"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="ListItemSelectedHoverFill" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFEAF9FF" Offset="0"/>
<GradientStop Color="#FFC9EDFD" Offset="1"/>
</LinearGradientBrush>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="FocusVisualStyle" Value="{StaticResource ListViewItemFocusVisual}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Margin" Value="0,0,0,1"/>
<Setter Property="Padding" Value="5,2,5,2"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<Border SnapsToDevicePixels="true" Background="{TemplateB -
thrakazog wrote:
I never said you must use it. In fact I made a point to say it's possible without it
Well ... codeproject allows you to modify posted messages at any time without leaving a hint so I will not elaborate on this....
thrakazog wrote:
There just isn't much documentation availible that is XAML free.
It is just false. For example see: http://www.amazon.fr/Applications-Code-Markup-Presentation-Foundation/dp/0735619573/ref=sr_1_1?ie=UTF8&s=english-books&qid=1229490679&sr=8-1[^] The first half of this book is totally xaml free (over a 1000 pages). (Petzold is quite well known) So you should do a little research and come back when you know a bit about what you are talking about... And by the way you could also try: http://msdn.microsoft.com/en-us/library/system.windows.aspx[^] Please do not say you were not aware of the existence of the MSDN library...
Thank you Captain: I Must Win Every Conversation and Prove Others Opinions Wrong.
Pierre Leclercq wrote:
thrakazog wrote: There just isn't much documentation availible that is XAML free. It is just false. For example see:
You see there how I used the word MUCH. That indicates that there is SOME documentation. I actaully have the book you mentioned.
Pierre Leclercq wrote:
So you should do a little research and come back when you know a bit about what you are talking about...
Yar, and you might consider reading ALL the words in peoples posts. Maybe even try to string the sentances together and understand them before responding with your MUST WIN style answers. Cheers. :)
-
Well if you think you must use XAML to use WPF, then you should go back and learn more about it. You really do not have to do that, although it is very convenient and elegant when used correctly. All the classes used in WPF are part of the dotnet framework so you can do everything manually if this is your vehicle of choice, but XAML will help keep complexity down.
thrakazog wrote:
There is also no visual inheritance
There is actually visual inheritance, although it could be improved. This is what templates are about.
Pierre Leclercq wrote:
Well if you think you must use XAML to use WPF, then you should go back and learn more about it. You really do not have to do that, although it is very convenient and elegant when used correctly. All the classes used in WPF are part of the dotnet framework so you can do everything manually if this is your vehicle of choice, but XAML will help keep complexity down
that's true. in fact, you can also use assembler to emit in-memory il that the framework will interperate as though it were xaml. and you can use a strap on on your girlfriend in much the same way she uses it on you. good for the goose, good for the gander. other things that you can do but shouldn't include: surrendering to the germans, voting for democrats and attempting civil discourse on teh interwebs.
-
Thank you Captain: I Must Win Every Conversation and Prove Others Opinions Wrong.
Pierre Leclercq wrote:
thrakazog wrote: There just isn't much documentation availible that is XAML free. It is just false. For example see:
You see there how I used the word MUCH. That indicates that there is SOME documentation. I actaully have the book you mentioned.
Pierre Leclercq wrote:
So you should do a little research and come back when you know a bit about what you are talking about...
Yar, and you might consider reading ALL the words in peoples posts. Maybe even try to string the sentances together and understand them before responding with your MUST WIN style answers. Cheers. :)
thrakazog wrote:
Thank you Captain: I Must Win Every Conversation and Prove Others Opinions Wrong.
Thank you!! So one more thread to prove Godwin's right, see: http://en.wikipedia.org/wiki/Godwin%27s_law[^] (So now on, you'll call me Sir... :)
-
Well can't wait for your book, 'Learn WPF in 14 days' ;P
Software Kinetics - Moving software
-
thrakazog wrote:
Thank you Captain: I Must Win Every Conversation and Prove Others Opinions Wrong.
Thank you!! So one more thread to prove Godwin's right, see: http://en.wikipedia.org/wiki/Godwin%27s_law[^] (So now on, you'll call me Sir... :)
Pierre Leclercq wrote:
thrakazog wrote: Thank you Captain: I Must Win Every Conversation and Prove Others Opinions Wrong. Thank you!! So one more thread to prove Godwin's right, see:
Huh, I never brought up the nazis. I wasn't even hinting at anything in that direction. I was proclaiming you a captain much in the same way Captain Crunch is. I really didn't see this thread going the Godwins law way. But since you brought it up i'll play along and still try to tie it in with our main topic. I said there wasn't MUCH documentation for WPF without XAML. I mean this in the same way that France hasn't surrendered to the Germans MUCH. Now you're free to argue that WPF can be done without XAML, as I said in my original posting... And that France does occasionally surrender to the Germans. Or, maybe we should both just stop waisting our time.
-
Pierre Leclercq wrote:
thrakazog wrote: Thank you Captain: I Must Win Every Conversation and Prove Others Opinions Wrong. Thank you!! So one more thread to prove Godwin's right, see:
Huh, I never brought up the nazis. I wasn't even hinting at anything in that direction. I was proclaiming you a captain much in the same way Captain Crunch is. I really didn't see this thread going the Godwins law way. But since you brought it up i'll play along and still try to tie it in with our main topic. I said there wasn't MUCH documentation for WPF without XAML. I mean this in the same way that France hasn't surrendered to the Germans MUCH. Now you're free to argue that WPF can be done without XAML, as I said in my original posting... And that France does occasionally surrender to the Germans. Or, maybe we should both just stop waisting our time.
Captain crunch was a captain? What does that make his berries in that case, metaphorically speaking? I think they would be sweaty balls of those he gave the option to: walk the plank for feed hungry children one crunch berry at a time. but I digress. You know who else really liked XAML? Adolph Hitler. When the furer wasn't burning jews, painting disney frames or whackin' it with a thumb in Ava's ass, he was programming wpf through xml. And you know what else? he was doing all his code behind with iron phyton. let's just say I'm glad they finally caught him in argentina and made him do guest shots on magnum pi. a fate worst than actually coding xaml. nazis.
-
Pierre Leclercq wrote:
thrakazog wrote: Thank you Captain: I Must Win Every Conversation and Prove Others Opinions Wrong. Thank you!! So one more thread to prove Godwin's right, see:
Huh, I never brought up the nazis. I wasn't even hinting at anything in that direction. I was proclaiming you a captain much in the same way Captain Crunch is. I really didn't see this thread going the Godwins law way. But since you brought it up i'll play along and still try to tie it in with our main topic. I said there wasn't MUCH documentation for WPF without XAML. I mean this in the same way that France hasn't surrendered to the Germans MUCH. Now you're free to argue that WPF can be done without XAML, as I said in my original posting... And that France does occasionally surrender to the Germans. Or, maybe we should both just stop waisting our time.
thrakazog wrote:
Huh, I never brought up the nazis
For godwin, the nazis is a metaphor. I thought you had guessed it. ... And don't forget to call me Sir ... (See if you'll take this one literally too...)
thrakazog wrote:
waisting our time
hmm, hmm... So I'll use my best guess and try not to waste time. But my first reaction was not to reply to your post, and I thought you were the kind of guy to want to have the last word. So I gave you the opportunity to do it, and that's what you did... (ROTFL)
thrakazog wrote:
And that France does
So much for the relevancy of your posts (WPF, France, Germany), ...
-
Captain crunch was a captain? What does that make his berries in that case, metaphorically speaking? I think they would be sweaty balls of those he gave the option to: walk the plank for feed hungry children one crunch berry at a time. but I digress. You know who else really liked XAML? Adolph Hitler. When the furer wasn't burning jews, painting disney frames or whackin' it with a thumb in Ava's ass, he was programming wpf through xml. And you know what else? he was doing all his code behind with iron phyton. let's just say I'm glad they finally caught him in argentina and made him do guest shots on magnum pi. a fate worst than actually coding xaml. nazis.
chester123456 wrote:
Captain crunch was a captain? What does that make his berries in that case, metaphorically speaking? I think they would be sweaty balls of those he gave the option to: walk the plank for feed hungry children one crunch berry at a time. but I digress. You know who else really liked XAML? Adolph Hitler. When the furer wasn't burning jews, painting disney frames or whackin' it with a thumb in Ava's ass, he was programming wpf through xml. And you know what else? he was doing all his code behind with iron phyton. let's just say I'm glad they finally caught him in argentina and made him do guest shots on magnum pi. a fate worst than actually coding xaml.
:zzz: :zzz: :zzz:
chester123456 wrote:
nazis.
one godwin point...
-
Pierre Leclercq wrote:
Well if you think you must use XAML to use WPF, then you should go back and learn more about it. You really do not have to do that, although it is very convenient and elegant when used correctly. All the classes used in WPF are part of the dotnet framework so you can do everything manually if this is your vehicle of choice, but XAML will help keep complexity down
that's true. in fact, you can also use assembler to emit in-memory il that the framework will interperate as though it were xaml. and you can use a strap on on your girlfriend in much the same way she uses it on you. good for the goose, good for the gander. other things that you can do but shouldn't include: surrendering to the germans, voting for democrats and attempting civil discourse on teh interwebs.
chester123456 wrote:
Pierre Leclercq wrote: Well if you think you must use XAML to use WPF, then you should go back and learn more about it. You really do not have to do that, although it is very convenient and elegant when used correctly. All the classes used in WPF are part of the dotnet framework so you can do everything manually if this is your vehicle of choice, but XAML will help keep complexity down that's true. in fact, you can also use assembler to emit in-memory il that the framework will interperate as though it were xaml. and you can use a strap on on your girlfriend in much the same way she uses it on you. good for the goose, good for the gander. other things that you can do but shouldn't include: surrendering to the germans, voting for democrats and attempting civil discourse on teh interwebs.
I will assume you are trying to be funny. X|
-
thrakazog wrote:
Huh, I never brought up the nazis
For godwin, the nazis is a metaphor. I thought you had guessed it. ... And don't forget to call me Sir ... (See if you'll take this one literally too...)
thrakazog wrote:
waisting our time
hmm, hmm... So I'll use my best guess and try not to waste time. But my first reaction was not to reply to your post, and I thought you were the kind of guy to want to have the last word. So I gave you the opportunity to do it, and that's what you did... (ROTFL)
thrakazog wrote:
And that France does
So much for the relevancy of your posts (WPF, France, Germany), ...
Pierre Leclercq wrote:
thrakazog wrote: And that France does So much for the relevancy of your posts (WPF, France, Germany), ...
a day without thrakazog is like a day without mexicans. according to that movie, that's a pretty horrendeous day. and if prop 8 has taught us nothing else (and dare I venture that it hasn't?) it's that thrakazog is probably also gay, and that being the case, another day w/out his posts would be like even worse than the whole mexican thing. so kudos to you sir, and anti-kudos to your detractors.
-
WPF sounds like a good idea, but I'm wondering if it's worth the learning curve. Has anyone here actually used it successfully? Any positive or negative comments?
DP
I find it the most frustrating and difficult UI development system I have ever used. Fair enough, some things are simpler in WPF but the vast majority of tasks (for me at least) are many times more difficult. And I HATE databinding with a passion - I have read the books, I have read the articles, I have tried to get to grips with it but it mostly seems to be a case of typing random binding syntax and seeing which one works. I take an example from a book, I try to apply it to my app, it doesn't work so I look around for other examples, I try those, they don't work, so I type stuff at random and see which one fits. My main WinForms app won awards where the UI was praised so I am no duffer but I just don't think WPF fits my mindset. Oh - it's also extremely slow on my development PC.