|
No. WPF Web Browser App is an XBAP.
|
|
|
|
|
|
Hello all,
Im working on an ColorPicker user control and have problems registering DependencyPropertys.
I try to register a new DependencyProperty in Visual Studio 2008 and all is working fine so far.
Now i open Expression blend, add an reference to the ColorPicker.dll, and add a new instance to the window.
When i now build the solution i get an exeption:
"the property IsCurrentColor has allready been registerd from _ColorPicker"
and the usercontrol cant anymore viewed in expression blend. Im a little confused because the
application anyway started and all is working. Here is a little code of mine.
public partial class _ColorPicker
{
private readonly DependencyProperty IsCurrentColorProperty;
public _ColorPicker()
{
this.InitializeComponent();
IsCurrentColorProperty = DependencyProperty.Register(
"IsCurrentColor", typeof(Color), typeof(_ColorPicker),
new FrameworkPropertyMetadata(Color.FromRgb(255, 255, 255),
new PropertyChangedCallback(OnIsCurrentColorChanged)));
}
private void OnIsCurrentColorChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
{
SetColorInfos((Color)e.NewValue);
_currentColor.Background = new SolidColorBrush((Color)e.NewValue);
}
}
|
|
|
|
|
|
As Dave said - Dependency Properties need to be static. As well as Dr WPFs snippets, you may want to download MoXAML and install it in Visual Studio. One of the addin commands allows you to add boilerplate dependency properties just by filling in a dialog box. Follow my sig for the addin.
|
|
|
|
|
Hi,
I am new to WPF. I started to develope an sample inventory management application.
I have created a form with some buttons and on click of that button the corresponding forms open.
Now i wanted have used 2 Resource Dictionary called as blue.xaml and green.xaml.
both the xaml contains the same elements but only different in their colour code
During design time i have used blue.xaml.
I want to change use the green.xaml on click of button. how can i do that?
Please Help!
Thanks
San
|
|
|
|
|
|
|
Hi there, I posted yesterday a problem that I've fixed, but now I ran into another one. This is not a conversion problem, more like a bug.
Please do the following in Bea's project to reproduce.
1. Open 'DataSource.cs'
2. Make the 'public Album()' look like below
public Album()
{
this.PicturesLeft = new ObservableCollection<picture>();
this.PicturesRight = new ObservableCollection<picture>();
this.PicturesLeft.Add(new Picture(new Uri("Images\\2moons_2.gif", UriKind.Relative), "Saturn", "Saturn is the most distant of the five planets known to ancient stargazers."));
this.PicturesLeft.Add(new Picture(new Uri("Images\\earglobe.gif", UriKind.Relative), "Earth", "Earth, our home planet, is the only planet in our solar system known to harbor life."));
this.PicturesLeft.Add(new Picture(new Uri("Images\\jupglobe.gif", UriKind.Relative), "Jupiter", "With its numerous moons and several rings, the Jupiter system is a \"mini-solar system.\""));
this.PicturesLeft.Add(new Picture(new Uri("Images\\marglobe.gif", UriKind.Relative), "Mars", "The red planet Mars has inspired wild flights of imagination over the centuries."));
this.PicturesLeft.Add(new Picture(new Uri("Images\\merglobe.gif", UriKind.Relative), "Mercury", "The small and rocky planet Mercury is the closest planet to the Sun."));
this.PicturesLeft.Add(new Picture(new Uri("Images\\nepglobe.gif", UriKind.Relative), "Neptune", "Neptune was the first planet located through mathematical predictions."));
this.PicturesLeft.Add(new Picture(new Uri("Images\\plutoch_2.gif", UriKind.Relative), "Pluto", "Long considered to be the smallest, coldest, and most distant planet from the Sun."));
this.PicturesLeft.Add(new Picture(new Uri("Images\\uraglobe.gif", UriKind.Relative), "Uranus", "Uranus gets its blue-green color from methane gas above the deeper cloud layers."));
this.PicturesLeft.Add(new Picture(new Uri("Images\\venglobe.gif", UriKind.Relative), "Venus", "At first glance, if Earth had a twin, it would be Venus."));
int i;
for (i = 0; i <= 3; i++)
{
this.PicturesRight.Add(new Picture(new Uri("Images\\2moons_2.gif", UriKind.Relative), "Saturn", "Saturn is the most distant of the five planets known to ancient stargazers."));
this.PicturesRight.Add(new Picture(new Uri("Images\\earglobe.gif", UriKind.Relative), "Earth", "Earth, our home planet, is the only planet in our solar system known to harbor life."));
this.PicturesRight.Add(new Picture(new Uri("Images\\jupglobe.gif", UriKind.Relative), "Jupiter", "With its numerous moons and several rings, the Jupiter system is a \"mini-solar system.\""));
this.PicturesRight.Add(new Picture(new Uri("Images\\marglobe.gif", UriKind.Relative), "Mars", "The red planet Mars has inspired wild flights of imagination over the centuries."));
this.PicturesRight.Add(new Picture(new Uri("Images\\merglobe.gif", UriKind.Relative), "Mercury", "The small and rocky planet Mercury is the closest planet to the Sun."));
this.PicturesRight.Add(new Picture(new Uri("Images\\nepglobe.gif", UriKind.Relative), "Neptune", "Neptune was the first planet located through mathematical predictions."));
this.PicturesRight.Add(new Picture(new Uri("Images\\plutoch_2.gif", UriKind.Relative), "Pluto", "Long considered to be the smallest, coldest, and most distant planet from the Sun."));
this.PicturesRight.Add(new Picture(new Uri("Images\\uraglobe.gif", UriKind.Relative), "Uranus", "Uranus gets its blue-green color from methane gas above the deeper cloud layers."));
this.PicturesRight.Add(new Picture(new Uri("Images\\venglobe.gif", UriKind.Relative), "Venus", "At first glance, if Earth had a twin, it would be Venus."));
}
}
</picture></picture>
3. Run it
Notice that if you scroll to the bottom of the ListView the drag & drop stops working but if you scroll back to the top, the drag & drop works. Also if you use the keyboard to arrow up/dwn in the listview the drag & drop works until you scroll via the mouse wheel or the scrollbar.
If you have 18 items in the ListView it works fine, add anymore and it starts messing up.
This one I've narrowed down to 1 line of code that isn't working when you are at the bottom of the list. This is from "Utilities.cs-->GetItemContainer"
var firstContainer = itemsControl.ItemContainerGenerator.ContainerFromIndex(0);
Anyone have any ideas?
Thanks
|
|
|
|
|
Disable item virtualization by adding VirtualizingStackPanel.IsVirtualizing="False" to the ListViews XAML, although if your going too be dealing with 100s of items you might want to look for a different solution.
|
|
|
|
|
That did the trick. I have to ask though, why would I need to look for a different solution than the ListView for item counts greater than 100? What is the problem?
|
|
|
|
|
That piece of code disables item virtualization which improves performance by only creating the items that are visible and regenerating them as you scroll. See MSDN.
Heres an altered version of that method that worked with virtualization enabled. It uses a method which was added in .NET 3.5 but Im guessing your using that as otherwise the sample would have probably worked.
public static FrameworkElement GetItemContainer(ItemsControl itemsControl, Visual bottomMostVisual)
{
return itemsControl.ContainerFromElement(bottomMostVisual) as FrameworkElement;
}
You can see the effects by trying with and without virtualization if you add more iterations to your loop which adds the pictures. At 200 there was a noticable pause when it was disabled.
modified on Saturday, January 31, 2009 5:18 PM
|
|
|
|
|
That worked great, thanks for all your help, I really appreciate it. I'm learning!
|
|
|
|
|
Hi I am in the middle of creating my 1st proper application and after just toying about with wpf for the last couple days.
I have once class called AccessDb.cs which hold various DB functions
and the Window1.xaml and cs
in accessdb , i have some code to open a database extract data via a datareader and I want to add this on the fly(no data binding) to a combobox in xaml in windows1.
How to you access elements in window1 from another class?
i.e window1.combobox1.items.add(datareader[manufacturers].tostring())
Thanks, such a noob question
oops im using c#
|
|
|
|
|
All you have to do in the other class is pass in a reference to Window1.
So, for example, one way to do this is to declare a method in your other class that gets a reference to a Window1 object:
public void GetWindowReference(Window1 theWindow)
{
}
Then, in Window1 you can just code:
OtherClass myOtherClass = new OtherClass();
myOtherClass.GetWindowReference(this);
Then you can do what you will with with Window1.
Let me know if that helps; you need more information; or want to try another method.
|
|
|
|
|
Ah Thanks , I a bit noob on the basics, that has helped me heaps. owe you a crate of beer , cheers
|
|
|
|
|
When you extract your data, put it into a well defined class. For instance, if you were reading in an animals structure, you might have a class that looks like this:
public class Animal
{
public string Name { get; set; }
} Create an observable collection that wraps the animals and populate it with your data reader. [Hint - you might want to use my RangeObservableCollection[^] class in place of the ObservableCollection because it's better suited for bulk loading information into without firing off the notification events]. Then, bind this to your DataContext and use WPF databinding to bind the combobox to this. I know this seems to be a lot, but it's not as bad as it sounds and there are plenty of examples on this.
|
|
|
|
|
Indeed, I was going to recommend an observable collection; but he said he did not want any databinding.
Come to think of it; why do you not want databinding? Just curious.
|
|
|
|
|
BlitzPackage wrote: why do you not want databinding?
Masochism - plain and simple masochism.
|
|
|
|
|
Haven't got round to learning databinding yet, just trying a few simple things with basics.
when i tried the solution above i get
Error 1 'BikeMaint.Modules.AccessDB.GetBikesAlreadyStored(BikeMaint.Window1)' is inaccessible due to its protection level G:\Programming\Projects\bikemaint\Window1.xaml.cs 103 18 BikeMaint
?
|
|
|
|
|
It means that the method GetBikesAlreadyStored isn't declared as public or internal (assuming it's all in the same assembly) so it can't be accessed by an object outside its class. You've probably got it declared as private or protected (or without a scope identifier at all).
|
|
|
|
|
hi guys
i have some class libraries created in 2.0 , i want to to now create a silverlight project and want to use my previously created classes by i cant add reference in silver light project and also when i add reference into my wcf (which is a web application ) it gives me some reference error .
how to do that ?
any example
thanks in advance
....
Tauseef A Khan
MCP Dotnet framework 2.0.
|
|
|
|
|
Hello,
Silverlight is using smaller version of CLR which is totally different from .NET CLR. So, the assembly which is complied using Silverlight CLR and the .NET assembly are not binary compatible. That's why you can't reference .NET dll in Silverlight project.
You will need to re-compile your sourcecode with Silverlight CLR if you want to add the reference in Silverlight.
All you need to do is that create Silverlight Class Library and copy all of your code from your project to new Silverlight Class Library project and try to build it again. There are a lot of namespaces that are not supported in Silverlight so that you have to find the workaround for them. Once you can successfully compile the project, you will get the assembly that you can reference in Silverlight.
Hope it helps.
|
|
|
|
|
Hi All,
This is only slightly related to WPF really. I'm currently overhauling my personal web site and I'm including lots of code bits (C# & XAML).
The problem is, I'm having troubles finding decent syntax highlighting stuff that does C# and XAML to an acceptable standard. The site is php/html/javascript so I can't use any nice asp.net stuff ... boo!
Any one have any ideas?
The syntax highlighters I've found so far are ok, but XAML highlighted as XML just doesn't cut it imho ...
Cheers,
|
|
|
|
|
I cheat on my blog, I post screenshots of the code.
|
|
|
|
|