|
Thanks for replying. I want to harness the power of data binding, but please tell me, how do I debug the binding when the result on the page (or user control) is not what I expect?
<div style="font-size:smaller;">
I didn't get any requirements for the signature
</div>
|
|
|
|
|
May I suggest that you use, as the basis of your projects, the library that Marlon Grech and I wrote called MefedMVVM[^]? With it, you can create views in Blend with design time view models. A design time view model is one that displays data in the designer so you can see what your application looks like in a simulated runtime environment while you are actually developing it.
|
|
|
|
|
I'll check it out. Thanks.
<div style="font-size:smaller;">
I didn't get any requirements for the signature
</div>
|
|
|
|
|
I just read this <a href="http://forums.silverlight.net/forums/p/159237/356897.aspx">rant</a> and I find myself agreeing. Holy sh*t, adding a button click event and selected index changed event to xaml.cs makes things SO much easier. I don't feel like I am losing anything by doing this. I'm not using any Unit Test, for I have Business Analyst who does real testing via the UI. So, why do I have do I have keep code out of the xaml.cs?
<div style="font-size:smaller;">
I didn't get any requirements for the signature
</div>
|
|
|
|
|
This is more a thought for the Lounge than a question though.
The funniest thing about this particular signature is that by the time you realise it doesn't say anything it's too late to stop reading it.
My latest tip/trick
|
|
|
|
|
Yes, it is.
I didn't get any requirements for the signature
|
|
|
|
|
I am using Adorners to show input errors on my textbox controls, and those controls are hosted within a ScrollViewer. For some reason, my adorner UI is clipped when it tries to draw outside the ScrollViewer.
I'm not the first to have this problem
http://social.msdn.microsoft.com/forums/en-US/wpf/thread/e060205e-5bfc-4f21-bf80-dfa55c44eb8a
However, the posted solution does not work for me... Has anyone else run into this problem?
Here's the XAML from my example project:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
<Window.Resources>
<Style TargetType="{x:Type ScrollViewer}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollViewer}">
<Grid x:Name="Grid" Background="{TemplateBinding Background}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Rectangle x:Name="Corner" Fill="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" Grid.Column="1" Grid.Row="1"/>
<AdornerDecorator Grid.Column="0" Grid.Row="0">
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter" Margin="{TemplateBinding Padding}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" CanContentScroll="{TemplateBinding CanContentScroll}" CanHorizontallyScroll="False" CanVerticallyScroll="False"/>
</AdornerDecorator>
<ScrollBar x:Name="PART_VerticalScrollBar" Cursor="Arrow" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Grid.Column="1" Grid.Row="0" ViewportSize="{TemplateBinding ViewportHeight}" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0" Value="{Binding Path=VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" AutomationProperties.AutomationId="VerticalScrollBar"/>
<ScrollBar x:Name="PART_HorizontalScrollBar" Cursor="Arrow" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Grid.Column="0" Grid.Row="1" Orientation="Horizontal" ViewportSize="{TemplateBinding ViewportWidth}" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0" Value="{Binding Path=HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" AutomationProperties.AutomationId="HorizontalScrollBar"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<ScrollViewer Margin="50">
<TextBox Text="aaa" Height="23" Name="textBox1" Width="120" />
</ScrollViewer>
</Window>
I attach an adorner to the TextBox, but when that adorner draws outside the ScrollViewer window it gets clipped.
Thanks,
Aaron
|
|
|
|
|
Well, yeah, why wouldn't it? You aren't giving it anything bigger to draw on. The ScrollViewer is at the top.
|
|
|
|
|
Sorry if I'm not understanding. There is room outside the ScrollViewer for the adorner to draw on. Also, I don't have this problem with any other container type. If I host the textbox inside a Canvas or Grid, the adorner is not clipped and draws outside the container.
|
|
|
|
|
GetAdornerLayer() returns the FIRST AdornerLayer it finds (from the bottom up). HOWEVER (and I neglected to mention this before , sorry), in some situations it will find one lower then you expect. An AdornerDecorator is one situation, but, tee-hee... a ScrollViewer is another special case . ScrollContentPresenter is another control that'll stop the adorner layer search.
Here is GetAdornerLayer():
public static AdornerLayer GetAdornerLayer(Visual visual)
{
if (visual == null)
{
throw new ArgumentNullException("visual");
}
for (Visual visual2 = VisualTreeHelper.GetParent(visual) as Visual; visual2 != null; visual2 = VisualTreeHelper.GetParent(visual2) as Visual)
{
if (visual2 is AdornerDecorator)
{
return ((AdornerDecorator) visual2).AdornerLayer;
}
if (visual2 is ScrollContentPresenter)
{
return ((ScrollContentPresenter) visual2).AdornerLayer;
}
}
return null;
}
As you can see, it stops once it hits the ScrollContentPresenter .
If you want a larger adorner layer, you'd need to call GetAdornerLayer() on a Visual above the ScrollViewer.
|
|
|
|
|
You're a genius!! I rewrote the GetAdornerLayer function to be this:
public AdornerLayer GetAdornerLayer(Visual visual)
{
if (visual == null)
{
throw new ArgumentNullException("visual");
}
for (Visual visual2 = VisualTreeHelper.GetParent(visual) as Visual; visual2 != null; visual2 = VisualTreeHelper.GetParent(visual2) as Visual)
{
if (visual2 is AdornerDecorator)
{
return ((AdornerDecorator)visual2).AdornerLayer;
}
//if (visual2 is ScrollContentPresenter)
//{
//return ((ScrollContentPresenter)visual2).AdornerLayer;
//}
}
return null;
}
Works like a charm!! Thanks for your help.
Aaron
|
|
|
|
|
Not what I would have done, but whatever works
You could have just called GetAdornerLayer() on the ScrollViewer instead of the TextBlock.
|
|
|
|
|
Hello,
How is it possible to expose a collection (Which gets populated in the windows service) i.e. a queue to a silverlight page using wcf ?
I have not been able to find this on the web anywhere.
Any thoughts please?
Thnk you
|
|
|
|
|
Just expose your data via a web service and have your Silverlight application call it that way.
Just remember that Silverlight can only talk async web services.
|
|
|
|
|
|
New to Silver light stuff getting this error when Installing Silver light tool for Visual Studio 2008
any suggestion ?
Fatal error during Installations
Exe (c:\d291c2132eaf0c9e83a1e7\PurgeSLTCache.exe) succeeded.
Exe (C:\DOCUME~1\MIRZA~1.COM\LOCALS~1\Temp\Silverlight Tools RTW\Silverlight.2.0_Developer.exe) failed with 0x80070643 - Fatal error during installation. .
Exe (c:\d291c2132eaf0c9e83a1e7\PurgeSLTCache.exe) succeeded.
Final Result: Installation failed with error code: (0x80070643), Fatal error during installation
SOFTDEV
Luck in life always exists in the form of an abstract class that cannot be instantiated directly and needs to be inherited by hard work and dedication.
modified on Sunday, January 9, 2011 2:48 AM
|
|
|
|
|
Just reinstalled the latest version and installed this version and again updated to the latest :P
SOFTDEV
Luck in life always exists in the form of an abstract class that cannot be instantiated directly and needs to be inherited by hard work and dedication.
|
|
|
|
|
Hi. Good day to all.
I am stucked with this problem:
I have multiple storyboards, for example, Move1 as the first storyboard name. I used the ControlStoryBoardAction - StoryBoardCompletedTrigger to continue with the next storyboard which is Move2. And this goes on till Move20. Now, I need to have a stop button which will stop whichever storyboard that is playing at the time when the stop button is being clicked. I tried a lot of methods which none works.
Another problem:
I need a repeat button too. I researched on many methods that teaches to refresh the page but it doesn't seem to work in my case.
Any advise on how to go about doing? Thanks!
|
|
|
|
|
For the first problem, the simplest solution would be to run a loop through all the story boards (on clicking the stop button) and stop all the story boards that are running.
Silverlight does not support a page refresh.
The funniest thing about this particular signature is that by the time you realise it doesn't say anything it's too late to stop reading it.
My latest tip/trick
|
|
|
|
|
I have 3 client applications that would like to have one sign on, For example, I have a WPF application that opens an internal browser control. I would like the WPF application to be able to log the person in only once so when the app opens the browser they are authenticated already. Also the reverse should occur. If a user is logged in through the web it will log the person in to the WPF client when it has been opened.
|
|
|
|
|
SSO is based on session state (and probably other things), and can't normally cross browser boundaries. I think the best way to do this is when a user logs on one or the other application, an entry is saved in a database, and all three apps query the database for user status.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997
|
|
|
|
|
If I've understood the issue correctly, it seems to me that ASP.NET forms authentication would be a possibility.
For example, I've just written a "Silverlight Portal" app, which is (of course) an ASP.NET app, hosting some silverlight controls on various pages. The point of this portal is to provide SSO capabilities for various websites (Actually, different "instances" of the same site, but you get the idea). In the silverlight I'm collecting user info and validating / verifying through WCF RIA services. Once it's determined that the login is OK, I then call out to a javascript function on the hosting page which basically clicks a standard ASP.NET button, which does the standard forms auth. The trick is that for each of the "main" sites, their Forms Auth login URL is set to the page which I host the Login silverlight on - which means that any attempt to navigate directly there causes a redirect back to the portal, which shows the SL login. User clicks Login on this control, it gets "delegated" to the ASP.NET page, adds the forms auth cookie and alles ist gut as they say in Dusseldorf.
Not sure if it would fly in your case however, for two reasons...1. Not sure about the embedded browser, and as mentioned I'm actually redirecting to a single site...
Worth a bash though
C# has already designed away most of the tedium of C++.
|
|
|
|
|
Hello all,
I want to create a ComboBox UI which will look like below: http://dl.dropbox.com/u/7919724/ComboBox_Shapes.png[^]
I have added 3 different shapes of the ComboBox which may look as it is, based on the width of the content.
The first combo item has a bigger width, the second one has the same width as the combo, whereas the third one has smaller width than the combo. Is it possible to create the same shapes? I tried to do some tricks in the template, but as the drop down is inside the popup, I am quite unsure about this. Any idea???
Note that, there will not be any line between the toggle button and the drop down (as shown in the figure).
Waiting for your replies. Thanks in advance.
|
|
|
|
|
Looks like it is probably possible. My first guess is that the edit portion would have a border with thickness 3,3,3,0 or whatever thickness you choose, just have 0 on the bottom to get rid of the bottom border. For the pop up portion, you would need 3,3,3,3 for the thickness and clip the top border to the proper width. Or place a 2nd "white" rectangle over the border and set its width to the width of the combobox to hide the border.
Truth be told, eliminate the 3rd option and your life will be much easier. I don't think I've ever seen a combobox like that anyway. Usually the min width of the drop down is the width of the combobox.
|
|
|
|
|
I will check this and let you know by this weekend. Thanks.
|
|
|
|