|
Hello,
Is there a simple mean in WPF to make one control overlay on top of another?
- Do you have to programmatically take a way with Adorner?
- Is this not standard?
My case is I have a UserControl named 'MenuControl', to show above another UserControl named 'ViewControl', inside a Window.
<br />
<Window ...><br />
<Grid><br />
<cc:ViewControl x:Name="viewControl" Margin="3,3,3,3" Width="Auto" Height="Auto" /><br />
<my1:MenuControl x:Name="menuControl1" HorizontalAlignment="Right" VerticalAlignment="Center" xmlns:my1="clr-namespace:Application.Controls" /><br />
</Grid><br />
</Window><br />
I am using: .NET Framework 3.5, VS 2008.
|
|
|
|
|
It is standard. Grid children will overlap each other if they are positioned that way. Your issue is that MenuControl is set to H Right / V Center, but ViewControl has something different entirely. They will overlap if the window is small enough and the controls are large enough, but if you truely want them to overlap, they needed to be positioned the same way.
|
|
|
|
|
Thanks in advance ,
I had downloaded Microsoft Expression 4 trial version, but unfortunately could not use it , i am new to silver light stuff etc, and had not used Mic. Expression before so basically was exploring but used only two to three times because of other projects burden and it has expired
My Question is, Is there any way to increase trial period even i re installed , but its still showing that i have to enter the key. i hope so its not piracy
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.
|
|
|
|
|
Bypassing the limit on such a trial product would be piracy. If you do this make sure you pay your lawyers more than Microsoft pay theirs.
The best things in life are not things.
|
|
|
|
|
No there isnt. Not any legal way.
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.
|
|
|
|
|
Working on our Silverlight Application. (1 year old, yoohoo! ) everything runs fine, yoohoo!
And then, I press F5 and... I got a blank page with a big sign:
"To view this content, please install: Microsoft Silverlight"
Err... but it's already there with higher version than the minimum required... It already worked for hundreds of hour!
What's going on?!?
I tried again (you know, F5, Debug!) and this time it worked!
Very strange...
I'd like to get to the bottom of that as some customer had similar problem (except, for them, the nagging install screen didn't go away...)
A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station....
_________________________________________________________
My programs never have bugs, they just develop random features.
|
|
|
|
|
I'm using the WPF DataGrid that comes with .net 4.0.
The DataGrid's ItemsSource is bound to an ObservableCollection of ViewModels - one ViewModel for each Row. The count of rows is constant at any time. Depending on a Property in a row's viewmodel, the row has to be visible or collapsed. I do not want to manipulate the underlying itemssource because I want to keep the data in the viewmodels. I just want to set the Visibility of the rows.
So I created a style and set the DataGrid's "RowStyle" Property to it:
<Style x:Key="MyRowStyle" TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding PropertyFromViewModel}" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
This actually works, but the datagrid scrollbar's size is not constant anylonger.
When I scroll through the list, the scrollbar size changes and when I start scrolling from the top of the list, the scrollbar moves, but the list stays where it is. Only when the scrollbar reaches a certain point, the list moves as well.
I have tried filtering the list with a CollectionViewSource, this solves the problem, but makes the triggering of visible/collapsed very slow when changing the property in the view model and refreshing the filtering of the collectionviewsource.
|
|
|
|
|
JackMalibu wrote: ObservableCollection of ViewModels - one ViewModel for each Row
Uhm seems a lot weird to me, surely a ViewModel is designed to service the View, not 1 line of a datagrid in a View, Sorry. I have no idea why the DG is pissed at you, I can understand why it is but can't help with the scroll issue. mutter mutter now thats the weirdest design I have come across yet
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
With "ViewModel" I mean a class that encapsulates all data for one row. Don't know what might be weird about this. It's just a capsule of data for the columns for each row plus the visibility flag.
|
|
|
|
|
Hi all,
I added to an already working (perhaps that was my mistake) a DataGridTemplateColumn containing a Button. The code looks like this:
<DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' xmlns:local='clr-namespace:MyAssembly;assembly=MyAssembly>
<Button x:Name='btnShowSubgrid' Tag='{Binding ID}' Click='btnShowSubgrid_Click' Margin='4' Width='20'>
<Button.Content>
<Image x:Name='imgButtonTemplate' Source='Images/rightBlueArrow.png' />
</Button.Content>
</Button>
</DataTemplate>
All columns are runtime generated, and again, if I don't add this column, it all works fine.
This button's tag is bound to a column called "ID". There is another column that binds to "ID" but I don't think that's an issue. Even went as far as to remove all "embellisher" tags and content only leaving it with x:Name only but no luck.
This is how I add the column:
DataGridTemplateColumn buttonColumn = new DataGridTemplateColumn();
using (StreamReader reader = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream("MyAssembly.CellTemplates.ButtonCellTemplate.xml")))
{
String str = reader.ReadToEnd();
str = str.Replace("(ColumnToBind)", _gridDefinition.SubGrid.Param);
buttonColumn.CellTemplate = (DataTemplate)XamlReader.Load(str);
}
dgGrid.Columns.Add(buttonColumn);
The ArgumentOutOfRangeException is thrown after the MainPage_Loaded event and it says:
Microsoft JScript runtime error: Unhandled Error in Silverlight Application
Code: 4004
Category: ManagedRuntimeError
Message: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: index
at System.Windows.PresentationFrameworkCollection`1.InsertDependencyObject(Int32 index, DependencyObject value)
at System.Windows.Controls.UIElementCollection.InsertInternal(Int32 index, UIElement value)
at System.Windows.PresentationFrameworkCollection`1.Insert(Int32 index, T value)
at System.Windows.Controls.DataGrid.InsertDisplayedColumnHeader(DataGridColumn dataGridColumn)
at System.Windows.Controls.DataGrid.OnApplyTemplate()
at System.Windows.FrameworkElement.OnApplyTemplate(IntPtr nativeTarget)
My DataGrid has AutoGenerateColumns set to "false". Has somebody have the same issue? How have you fixed it?
BTW, I'm using Silverlight 4.
All help is appreciated!
Thanks,
humble.apprentice
|
|
|
|
|
Hi
I want to host wpf controls in a legacy windows form. I have to do something like this
[code]
// In some windows form class
void SetWPFContent(UIElement content)
{
ElementHost ctrlHost = new ElementHost();
ctrlHost.Child = content;
ctrlHost.AutoSize = true;
ctrlHost.Dock = DockStyle.Fill;
Controls.Add(ctrlHost);
}
[/code]
The WPF control is put in the form. However, the ElementHost component always come out with the same odd size no matter what content is. Is there a way for me to resize ElementHost to make it fit the content?
thanks
|
|
|
|
|
Hi,
I have a ViewModel called MainWindowViewModel. In this I have a property that shows a modal window when an error occurs. This works fine as long as an error occurs during start-up.
When an error occurs after start-up, in SubViewModel, I invoke the parametrized constructor in MainWindowViewModel.
MainWindowViewModel.cs
public MainWindowViewModel()
{
if (!isServerRunning)
{
this.ModalWindow = new LogViewModel("Service is down.");
}
else
{
this.ModalWindow = new LogViewModel();
}
}
public MainWindowViewModel(string logMessage)
{
this.ModalWindow = new LogViewModel(logMessage);
}
public LogViewModel ModalWindow
{
get
{
return _modalWindow;
}
set
{
_modalWindow = value;
OnPropertyChanged("ModalWindow");
}
}
MainWindow.xaml
....
<Grid>
<vw:LogView Content="{Binding Path=ModalWindow}"/>
</Grid>
- MainWindowViewModel is bound to MainWindow.xaml
- SubViewModel is bound to SubView.xaml
- MainWindow.xaml loads multiple views, one of them is SubView.
In App.xaml I have created an instance of the ViewModel and bound it to MainWindow.
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
MainWindow mainWindow = new MainWindow();
MainWindowViewModel viewModel = new MainWindowViewModel();
mainWindow.DataContext = viewModel;
mainWindow.Show();
}
What I realized was that the modal window shows up when an error occurs after start-up if I create the modal window property in SubViewModel and bind it to SubView. But this is not ok since SubView is only a DockPanel covering 1/4 of the MainWindow. I.e. 1/4 is only covered with a modal window instead of the whole MainWindow.
I am not sure why modal window does not appear in MainWindow when I call the parametrized constructor from SubViewModel. When I debug I see that the part "_modalWindow = value;" has correct values but in any case the modal window does not show up.
I am binding the ViewModel to the Datacontext of the MainWindow. That's is probably why I see the Modal window when error occurs on start-up. For errors after start-up: Must I (from SubViewModel where I invoke the parametrized constructor in MainWindowViewModel) do some kind of binding to the datacontext of the Mainwindow again? How is the best way of doing this without having to create a new instance of MainWindow? Because MainWindow should only be created once.
Any help is much appreciated.
modified on Tuesday, June 14, 2011 4:33 AM
|
|
|
|
|
This problem is solved.
I passed the instance MainWindowViewModel to SubViewModel and used that instance in SubViewModel to set the property in MainWindowViewModel.
|
|
|
|
|
I have a project (LKCommon) set up in my app solution to hold common resources - I have added a reference to that assembly to the main assembly and then try to access the resources using:
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/LKCommon;component/Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
<!-- Converters -->
<converters:OrientationToAngleConverter x:Key="OrientationToAngleConverter" />
</ResourceDictionary>
</UserControl.Resources>
If I change any of the pack uri string it says it can no longer find the file (so it seems to be finding it during development) but as soon as I run the application I get a file not found exception for that resource dictionary.
What am I doing wrong?
|
|
|
|
|
I think you need to get rid of the application:,,, portion and it should work. Where 'xxx' is the assembly name minus the extension. What you have now is trying to load out of the exe.
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/xxx;component/Themes/Generic.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
|
|
|
|
|
I tried that but it didn't work at the UserControl level - only at the Application level. So that is what I have gone for. Thanks for your reply.
|
|
|
|
|
Hi
I am getting this error when I am trying to call sharepoint 2010 client object model in my silverlight application.Error:The property or field has not been initialized. It has not been requested or the request has not been executed. It may need to be explicitly requested.
using (SP.ClientContext objSite = new SP.ClientContext("http://Sharepoint:80/"))
{
SP.CamlQuery objCaml = new SP.CamlQuery();
objCaml.ViewXml = @"<View></View>";
SP.Web objWeb = objSite.Web;
SP.List list = objWeb.Lists.GetByTitle("BackgroundImages");
listItems = list.GetItems(objCaml);
objSite.Load(objWeb);
objSite.Load(list);
objSite.Load(listItems);
objSite.ExecuteQueryAsync(Succeeded, Failed);
}
Please help
|
|
|
|
|
Hi all,
I have developed an application using Silverlight 4.0 which uses the Twilight Blue theme thats available on codeplex. I have a datagrid which uses a datapager whose "DisplayMode" is set to "FirstLastPreviousNextNumeric".My requirement is to highlight the currently selected page in the datapager.
I tried myself and was unable to find any style property that corresponds to manipulating the current page style. Googling also didn`t help. Any help would be appreciated.
When you fail to plan, you are planning to fail.
|
|
|
|
|
|
Thanks for your reply, however i had already went through this documentation after googling the problem. The documentation says that we have a part called "CurrentPageTextBox" of the datapager class which can be styled but the fact that i am using the display mode "FirstLastPreviousNextNumeric" doesn't have a textbox!!!! Why doesn't the datapager have a "CurrentPageButton" or a "CurrentPageTextBlock" part !!!!
When you fail to plan, you are planning to fail.
|
|
|
|
|
Good Evening All
I want to create a unique value for my User in Silverlight and access this value on the asp.net page that is part of the silverlight website. So i cant use cookies because they wont work and i cant do the client site cookie thing because it does not work for my design, its complicated.
This is my current implementation, i created a temp table that i store a value on t he SQL and retrieve it on the SQL immediately, because the created or the value and the access of the value happens between 1 nanosecond. so i don't want to depend on that because on a multi user system that will be a problem.
So basically i need to store any unique value that i can retrieve from the database even in a multi user environment.
Thanks
Vuyiswa Maseko,
Spoted in Daniweb-- Sorry to rant. I hate websites. They are just wierd. They don't behave like normal code.
C#/VB.NET/ASP.NET/SQL7/2000/2005/2008
http://www.vuyiswamaseko.com
vuyiswa@its.co.za
http://www.itsabacus.co.za/itsabacus/
|
|
|
|
|
What about a GUID (uniqueidentifier in SQL server)?
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
The main problem here is that the aspx page that i want to interact with is not the one that host the silverlight plugin, so in my project i have my xaml project and when that gets compile you know it will create a xap file that will be used by the hosting aspx page. but ow the page i want to interact with its not the same page that host it, i would have used the InitParam's. So the catch is that if i create a GUID on the SIlverlight and store it in the Db , how will asp.net select the correct GUID in a multiuser environment.
Thanks
Vuyiswa Maseko,
Spoted in Daniweb-- Sorry to rant. I hate websites. They are just wierd. They don't behave like normal code.
C#/VB.NET/ASP.NET/SQL7/2000/2005/2008
http://www.vuyiswamaseko.com
vuyiswa@its.co.za
http://www.itsabacus.co.za/itsabacus/
|
|
|
|
|
Silverlight code runs on the client and ASP.NET code runs on the server....so do you really need Silverlight to interact with the page HTML on the client? Sounds more like you need sessions and/or a way to communicate between Silverlight and the server code - a simple web service, WCF, or whatever.
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
i have exhausted the javascript solutions or client side solution, i have never thought of carrying the session in a webservice. can you please elaborate on what you mean some post a link that shows what you are suggesting?
thanks
Vuyiswa Maseko,
Spoted in Daniweb-- Sorry to rant. I hate websites. They are just wierd. They don't behave like normal code.
C#/VB.NET/ASP.NET/SQL7/2000/2005/2008
http://www.vuyiswamaseko.com
vuyiswa@its.co.za
http://www.itsabacus.co.za/itsabacus/
|
|
|
|