|
could you please give the example or explain in more detailes, or please give the reference to articles on this topic
|
|
|
|
|
My app has 2 windows. One windows is a magnification of an area of the other. I want to draw a line that shows where on my main window the magnify window is looking at.
It's similar to the functionality of Visual Studio 2010 showing the exception window with a line that points to the line of code where the exception occurred.
Is this possible to do in WPF? As far as I can tell, a line need to be added to a single parent.
|
|
|
|
|
I think you'll find the line needs a parent control. However the line is not constrained from going outside the bounds of the parent. I am assuming this from this question
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
In the custom control (derived from ContextMenu) if I include the following code in custom control class:
#region DependencyProperties
public static readonly DependencyProperty CircleSizeProperty = DependencyProperty.Register(
"CircleSize", typeof(double), typeof(CircularContextMenu),
new FrameworkPropertyMetadata(150));
public double CircleSize
{
get { return (double)GetValue(CircleSizeProperty); }
set { SetValue(CircleSizeProperty, value); }
}
#endregion DependencyProperties
I get a XamlParseException when I run the app - if I comment out the above code it works fine - at no point in the custom control or the app or anywhere else do I reference the above code.
I have looked at the above code for several hours now.
Anybody able to help?
|
|
|
|
|
Is there an inner exception?
Is it correctly interpreting the 150 as a double instead of an integer?
Does your class inherit (directly or indirectly) from DependencyObject?
Did you copy-paste this code to/from another class, and forget to change the type from CircularContextMenu?
|
|
|
|
|
I new all it needed was another pair of eyes - it was interpreting 150 as an integer.
many thanks
|
|
|
|
|
No problem... I've run into that one before
|
|
|
|
|
Hi
I am trying to implement Async threading in SilverLight but getting an error
I tried to simplify the code for your better understanding,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Threading;
namespace SilverlightApplication1
{
public partial class MainPage : UserControl
{
delegate void GetData();
public MainPage()
{
GetData gd = new GetData(CallData);
gd.BeginInvoke(afterCallData, null);
InitializeComponent();
}
void CallData()
{
}
void afterCallData( IAsyncResult result)
{
}
}
}
I am getting this error :-
{System.NotSupportedException: Specified method is not supported.
at SilverlightApplication1.MainPage.GetData.BeginInvoke(AsyncCallback callback, Object object)
at SilverlightApplication1.MainPage..ctor()
at SilverlightApplication1.App.Application_Startup(Object sender, StartupEventArgs e)
at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)}
The error does not have any inner exceptions....
Thanks
EDIT --------------------------------
Error is at line gd.BeginInvoke(afterCallData, null);
and it throws even if I do gd.BeginInvoke(null, null);
|
|
|
|
|
You need to specify the applicable control and use its Dispatcher object:
private delegate void GetDataDelegate();
private void GetData()
{
}
private void MainPage()
{
if (this.myControl.Dispatcher.CheckAccess())
{
GetData();
}
else
{
myControl.Dispatcher.BeginInvoke(new GetDataDelegate(GetData));
}
}
.45 ACP - because shooting twice is just silly ----- "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 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
modified on Friday, September 17, 2010 8:41 AM
|
|
|
|
|
Thanks will implement this
|
|
|
|
|
I didn't get p but Dispatcher.BeginInvoke(new GetDataDelegate(GetData)); worked simply great
|
|
|
|
|
Sorry - that should have been myControl instead of p ...
.45 ACP - because shooting twice is just silly ----- "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 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
Hi all. I've been gathering little bits of code from here, there and everywhere. I've got it doing what I want for the most part and just need someone's advice on the last part.
I have a button that moves it's position randomly when you trigger the Mouse Enter event. This works, but I want it to only move if the proposed position will be within the bounds of the control's form. Here's my code:
private void MoveControl(Control control, Window form)
{
TransformGroup tGroup = new TransformGroup();
tGroup.Children.Add(new TranslateTransform(50.0, 50.0));
control.RenderTransform = tGroup;
DoubleAnimation dA_X = GenerateDoubleAnimation(-50, 50);
DoubleAnimation dA_Y = GenerateDoubleAnimation(-50, 50);
TranslateTransform tt = (control.RenderTransform as TransformGroup).Children[0] as TranslateTransform;
double dTop = Canvas.GetTop(control) + (double)dA_X.To;
double dLeft = Canvas.GetLeft(control) + (double)dA_Y.To;
double dBottom = dTop + control.Height+ (double)dA_X.To;
double dRight = dLeft+control.Width + (double)dA_Y.To;
if (dTop > 0 && dLeft > 0 && dBottom < form.Height && dRight < form.Width)
{
tt.BeginAnimation(TranslateTransform.XProperty, dA_X);
tt.BeginAnimation(TranslateTransform.YProperty, dA_Y);
GeneralTransform myTrans = control.TransformToAncestor(this);
Point p1 = myTrans.Transform(new Point(0, 0));
control.SetValue(Canvas.LeftProperty, p1.X + dA_X.To);
control.SetValue(Canvas.TopProperty, p1.Y + dA_Y.To);
}
else
{
MoveControl(control, form);
}
}
DoubleAnimation GenerateDoubleAnimation(int min,int max)
{
DoubleAnimation da = new DoubleAnimation();
da.To = randomNumber.Next(min, max);
da.Duration = new Duration(TimeSpan.FromSeconds(.2));
return da;
}
I was hoping that this would prevent it moving outside of the form, but it doesn't. Also, I get an error with this line sometimes:
tGroup.Children.Add(new TranslateTransform(50.0, 50.0));
StackOverFlow error, that I don't understand.
Any pointers and help will be gratefully received.
Jib
modified on Friday, September 17, 2010 6:11 AM
|
|
|
|
|
I have added a handler for MouseRightButtonDown to a canvas inside a usercontrol but it never gets fired or if it does get fired it drifts off in the ether. Is there a way of finding out why this happens?
|
|
|
|
|
|
You might also want to take a look at Crack.NET[^]. It's a complementary product to snoop.
|
|
|
|
|
Cheers - I remember reading about it a year or so ago but didn't have any requirement for it at the time - I think its time has come. Thanks for reminding me.
|
|
|
|
|
You're welcome mate. Glad to help.
|
|
|
|
|
Hi all,
I'm working with MS Ribbon Control Library in VS2010 (using WPF and MVVM) and what to recreate something that Word 2010 does... (I'm not sure what MS call this function)
If you open a new doc in Word 2010, you get the document in a view window (as normal). However, if you then select File, it will open a new window / workspace with Information about Document1 for this tab... Select Home tab and it goes back to the view of the document.
1: What does MS call this function>
2: How do I create a new window / workspace for each tab.
I have tried the following snippet:
<r:RibbonTab Header="Home" >
<r:RibbonGroup Header="Imaging">
<r:RibbonButton Label="Archive Images" />
<r:RibbonButton Label="Our Images" />
</r:RibbonGroup>
<r:RibbonTab.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter /> <!-- Show only contentcontrol HomePage -->
</Trigger>
</r:RibbonTab.Triggers>
</r:RibbonTab>
...
<ContentControl x:Name="HomePage" Visibility="Collapsed"/>
<ContentControl x:Name="DocPage" Visibility="Collapsed"/>
But I'm stuck!!
Love & Light
|
|
|
|
|
I've also tried:
<r:RibbonTab.Triggers>
<DataTrigger Binding="{Binding Path=IsSelected}" Value="True" >
<!--<Setter TargetName="HomePage" Property="ContentControl.Visibility" Value="Visible" />-->
</DataTrigger>
</r:RibbonTab.Triggers>
But get the error message
XamlParseException occurred
'Initialization of 'Microsoft.Windows.Controls.Ribbon.RibbonTab' threw an exception.' Line number '65' and line position '18'.
Love & Light
|
|
|
|
|
I have a couple of events used to display the currently selected record.
private void GridLoaded(object sender, RoutedEventArgs e)
{
(sender as DataGrid).SelectionChanged += new SelectionChangedEventHandler(GridSelectionChanged);
}
private void GridSelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataGrid oDG = sender as DataGrid;
int Index = oDG.SelectedIndex;
if (Index >= 0 )
{
oDG.ScrollIntoView(oDG.SelectedItem, oDG.Columns[0]);
}
}
This needs to be applied to every grid in the application. I want to move these events to a helper class and bimd from the xaml to the helper class.
currenct binding is:
Loaded="GridLoaded"
Any suggestions on the correct syntax for binding to a helper event.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Collin Jasnoch wrote: "{Binding Path=MyHelper.GridLoaded}"
That looks more like what I'm looking for, thanks
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Hi, I'm developing my first application in WPF and I got stuck on this.
I have one Solution with several projects. I have a project for the main window, one for the menus, and another for the controls. The logic is that the main window will have one (or several) menu, and the menu has, again, one or several customized controls. The reason I did this is because I'll be needing to re-use the same controls and menus on a different configuration for the next project.
Now for my question... let's say that my projects are called "Controls", "Menus" and "Main". I have a customized button(user control) and a customized canvas(user control) in "Controls". Now, everything goes to the main window in "Main", the button goes inside the menu from "Menus" wich in turn goes to the main window, and the canvas goes directly to the main window grid.
My struggle is how to raise an event from the button once is clicked and that in the canvas a control(let's say a text box) appear at a location designated either by me or the user.
Is there a way to do this? I've tried with dependency properties but with complete failure. I'd appreciate for any kind of help.
Thanks
|
|
|
|
|
Not sure where the coordinates will come from, but let's assume it will be a dependency property on your custom button. You can then programmatically bind to that property from your menu. There will be a dependency property on your menu that the binding is set to update. You can then bind to that property from the textbox so that the canvas coordinates get updated. You can also update the visibility of the textbox using an IValueConverter that converts a bool (another dependency property linked between the button and menu) to a visibility value.
Not sure I understood your question correctly, but hopefully those ideas will help you get a start.
|
|
|
|
|
Hi , I am getting below error when try to run the VS2003 application.
---------------------------
Microsoft Development Environment
---------------------------
Error while trying to run project: Unable to start debugging on the web server. Server side-error occurred on sending debug HTTP request.
Make sure the server is operating correctly. Verify there are no syntax errors in web.config by doing a Debug.Start Without Debugging. You may also want to refer to the ASP.NET and ATL Server debugging topic in the online documentation.
---------------------------
OK Help
---------------------------
- Ajay K
|
|
|
|