|
i am trying to develop a WPF application, i have a mainwindow composed with 3 tabitems, i want to show Wpfpage when i click on bouton in tabitem3, how can i use "mdi container" in WPF application to show WPFpage
|
|
|
|
|
Hi!
I've added a Scrollviewer to my Screen. Inside the scrollviewer, I've added a scrollpanel and inside which a set of images. I've added the functionality for the tap event of the scrollpanel. I've to add two more sets of scrollviewer, scrollpanel and images(different ones from the first set of images) to the same screen. The functionality for the second and third set of scrollviewer is same with the first one. How to add these two more new scrollviewers? I can't use the same name for these three scrollpanels. How to design so that the existing code can be used for the new scrollviewer and scrollpanel sets also?
|
|
|
|
|
Create a UserControl that contains a ScrollViewer, etc. and the event handling code.
Then add as many of these UserControls to your "screen" as you need. Customize each UserControl by setting the appropriate properties (eg. image paths).
|
|
|
|
|
I am developing a silverlight application using MVVM pattern. I have a service which returns a string. I need to write that string in a text file. I call the save file dialog method in the service callback only when the returned string value is not null or empty. Here the problem is getting an exception in the savefiledialog statement "Quote: Dialog must be user initiated "
Quote: private void Service_Completed(ServiceCompletedEventArgs e)
{
if (e.Result != null)
{
if (string.IsNullOrEmpty(e.Result.Item))
{
MessageBox.Show("Empty Result"));
return;
}
bool? dialogResult = this.dialog.ShowDialog();
if (dialogResult == true)
{
byte[] fileBytes = UTF8Encoding.UTF8.GetBytes(e.Result.Item);
using (Stream stream = (Stream)this.dialog.OpenFile())
{
stream.Write(fileBytes, 0, fileBytes.Length);
stream.Close();
}
}
}
}
Please help me how to troubleshoot this exception in the event handler callback
G Nathan
|
|
|
|
|
|
Hi,
In my View
I have a datagrid and a 'Undo' button. On 'Undo' I am showing a BusyIndicator.
Suppose,
1) I try to add a new row in the datagrid
2) Datagrid row goes into the error state because of some validation failure
3) While datagrid is in edit mode, without loosing focus on the datagrid, I presses a shortcut 'Ctrl+Z' to Undo changes
Following exception occurs:-
System.Windows.Media.Animation.AnimationException: Cannot animate the 'IsEnabled' property on a 'System.Windows.Controls.ContentControl' using a 'System.Windows.Media.Animation.ObjectAnimationUsingKeyFrames'. For details see the inner exception. ---> System.InvalidOperationException: 'NewItemPlaceholderPosition' is not allowed during a transaction begun by 'AddNew'.
Actually on DataGrid LostkeyboardFocus i explicitly CommitEdit and CommitNew for the datagrid. So, if I press the 'Undo' button with mouse everything works fine.
But if I presses a shortcut while datagrid is in edit mode and focus is still in the datagrid, then the BusyIndicator, while setting status to BUSY, tries to change IsEnabled of the datagrid and the exception occurs.
Please help me if anyone has a solution
|
|
|
|
|
Sorry that I'm not going to be able to help, I have a basic design principle that will not allow the user to add rows to a grid, I insist that a dialog or detail panel is used for all but the most trivial editing process. It eliminates all sorts of issues I see posted here!
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
My aim is to change some values in my style at runtime. So what Im gonna do is, I clone the current style and change the values I want to change. But then I have a problem to add the style to the Resources. Is there away?
At the moment I just can load a whole xaml-file.
In the code is at the and the point where I have problems:
I have a
tyleClone ( clone of the current style) which I want to add to
this.Resources
public MainWindow()
{
InitializeComponent();
using (FileStream fs = new FileStream(@"C:\projekte\MyButtonStyle.xaml", FileMode.Open))
{
ResourceDictionary rd = (ResourceDictionary)XamlReader.Load(fs);
this.Resources = rd;
}
var style = new Style();
style = ((Style)Resources["myFunctionButtonStyle"]);
var styleClone = new Style();
foreach (var setter in style.Setters)
{
var typedSetter = setter as Setter;
if (typedSetter != null)
{
var newSetter = new Setter(typedSetter.Property, typedSetter.Value);
styleClone.Setters.Add(newSetter);
}
}
styleClone.Setters.Add(new Setter { Property = Button.FontSizeProperty, Value = (double)111 });
this.Resources.Add( )
}
|
|
|
|
|
Hi!
I've added a Scrollviewer(Horizontal) to my screen. Inside this scrollviewer I've added a stackpanel. I want to add images one after other into this stackpanel. How to add images to the stackpanel?
|
|
|
|
|
Try
<StackPanel Height="140" Orientation="Horizontal">
<Image Source="..."/>
</StackPanel>
Here[^] is an example on how to use the Image control.
You can also consider other controls like a ViewBox [^] instead of a StackPanel . A ViewBox provides inbuilt transform capabilities.
|
|
|
|
|
Abhinav S wrote:
You can also consider other controls like a ViewBox[^] instead of a StackPanel
Is it scrollable. I want horizontally scrollable pictures. For that I've added a Scrollviewer inside which I've added a StackPanel. Inside this StackPanel I've to add pictures and implement Horizontal Scrolling. Is this possible with ViewBox?
|
|
|
|
|
pix_programmer wrote: Is it scrollable
No. A viewbox can stretch to the size of the image.
You can define the width / height of the viewbox to allow a scroll.
<ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible" >
<Viewbox Stretch="UniformToFill" Width="100" Height="100">
<Image.../>
</Viewbox>
</ScrollViewer>
|
|
|
|
|
I want to implement a sort of tabbed navigation in WPF, that is, a TabControl with several TabItem s containing Frame s that host Page s.
Now the problem is that each Frame has its own navigation toolbar, while I want to have one single navbar placed entirely out of the TabControl . Also the navbar must be able to pilot the Frame that is in focus.
Any suggestion on how to do this? I googled a lot but could not find how. Thank you.
|
|
|
|
|
Im using styles for my WPF Windows. Is there an easy way that I can change values at runtime, so that all Elements which have this stlye will change there value?
Like in CSS ( Cascading Style Sheets )
At the moment I have to go to every Window and programm it like that:
in my XAML-Code I have buttons like this:
<Button Name"Button2" Style="{StaticResource myFunctionButtonStyle}" ...>
Allthough my button has a Style, I have to change the FontSize at runtime for evey Button in every Window like this:
private void SetFontSize(int i)
{
Button2.FontSize = i;
Button3.FontSize = i;
Button4.FontSize = i;
}
But this way is very redundant code. I have to this this for every Window and every Button!
But I cannot change the current style. I tryed something like this for my Window-Size:
((Style)Resources["MainWindow"]).Setters.Add(new Setter { Property = Window.WidthProperty, Value = (double)1024 });
But it doesn work because I cannot change the current style at runtime. It is just not allowed
|
|
|
|
|
Errorrist wrote: It is just not allowed
You have your button using your style as a StaticResource which are not changeable. DynamicResources are changeable at runtime.
Why is common sense not common?
Never argue with an idiot. They will drag you down to their level where they are an expert.
Sometimes it takes a lot of work to be lazy
Please stand in front of my pistol, smile and wait for the flash - JSOP 2012
|
|
|
|
|
What you need to do is to create your various styles in Resource Dictionaries and then dynamically load the correct Resource whenever required using XamlReader, like this:-
using(FileStream fs = new FileStream(selectedStyle, FileMode.Open))
{
ResourceDictionary rd = (ResourceDictionary)XamlReader.Load(fs);
this.Resources = rd;
}
where selectedStyle is the filename of your required resource dictionary. Then you can juist do this in your window
<Style x:Key="ButtonStyle"/>
<Button Style="{DynamicResource ButtonStyle}" VerticalAlignment="Top">Click Me</Button>
This assumes that each resource dictionary has a style called ButtonStyle and that it's target type is set to Button
Hope this helps
When I was a coder, we worked on algorithms. Today, we memorize APIs for countless libraries — those libraries have the algorithms - Eric Allman
|
|
|
|
|
Ok, it kinda works. But there are some points and questions in the code:
public MainWindow()
{
InitializeComponent();
using (FileStream fs = new FileStream(@"C:\projekte\MyButtonStyle.xaml", FileMode.Open))
{
ResourceDictionary rd = (ResourceDictionary)XamlReader.Load(fs);
this.Resources = rd;
}
var style = new Style();
style = ((Style)Resources["myFunctionButtonStyle"]);
var styleClone = new Style();
foreach (var setter in style.Setters)
{
var typedSetter = setter as Setter;
if (typedSetter != null)
{
var newSetter = new Setter(typedSetter.Property, typedSetter.Value);
styleClone.Setters.Add(newSetter);
}
}
styleClone.Setters.Add(new Setter { Property = Button.FontSizeProperty, Value = (double)111 });
this.Resources.Add( )
}
|
|
|
|
|
hello,i'm developping a wpf application
i want to add the result of parser class in a datagrid
public class ExcelParser
{
public DataTable GetDataTableExcel(string datasource)
{
OleDbConnection theConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=" + datasource + ";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;\"");
theConnection.Open();
OleDbDataAdapter theDataAdapter = new OleDbDataAdapter("SELECT * FROM [Feuil1$]", theConnection);
DataSet theDS = new DataSet();
DataTable dt = new DataTable();
theDataAdapter.Fill(dt);
return dt;
}
private void btnExcel_Click(object sender, RoutedEventArgs e)
{
ExcelParser exc = new ExcelParser();
dgvreceipient.ItemsSource=exc.GetDataTableExcel(datasource).DefaultView;
dgvreceipient.DataContext = exc.GetDataTableExcel(datasource);
}
|
|
|
|
|
MemberDotNetting wrote: i want to add the result of parser class in a datagrid
And what is your problem? BTW please edit the above and put <pre> tags around your code to make it more readable.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
the lines are empty, for example, I have 3 line in the excel file, I receive in the datagrid 3 line, but they are empty
|
|
|
|
|
MemberDotNetting wrote: the lines are empty, for example, I have 3 line in the excel file, I receive in the datagrid 3 line, but they are empty
Sorry, but that does not give us anywhere near enough information to help you. You need to set to work with your debugger to see what gets imported into your data objects.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
I test The same code works with wf but it does not work with wpf datagrid
|
|
|
|
|
Whatever your problem is, I see some bad code:
dgvreceipient.ItemsSource=exc.GetDataTableExcel(datasource).DefaultView;
dgvreceipient.DataContext = exc.GetDataTableExcel(datasource);
You call GetDataTableExcel() twice with the same parameter, and that call might take some time. Better do it once, assign the result to a local variable, and then use that. E.g.
DataTable tmp=exc.GetDataTableExcel(datasource);
dgvreceipient.ItemsSource=tmp.DefaultView;
dgvreceipient.DataContext =tmp;
Perhaps that will also solve your problem (some inconsistent behavior?), which you did not communicate to us.
|
|
|
|
|
the lines are empty, for example, I have 3 line in the excel file, I receive in the datagrid 3 line, but they are empty
|
|
|
|
|
Hello,
I have a collection of objects which implemepts IEditableCollectionView. I bind this collection to dataSource of DataGrid (Actually XamGrid)
In my AddNew i prepare the item i want to add to the collection .
Than i enter the indexer of the object i am adding and setting it's attributes (i have a dynamic DataGrid columns)
Than in my CommitAdd i add the prepared item to the collection.
I do it like this:
private Boolean _isAdding = false;
public object AddNew()
{
_isAdding = true;
_attributeRow = new FilterSetDefinitionAttributeRowViewModel() {ParentViewModel = _parent};
return _attributeRow;
}
private FilterSetDefinitionAttributeRowViewModel _attributeRow;
public void CommitNew()
{
Add(_attributeRow);
_isAdding = false;
}
public void CancelNew()
{
_isAdding = false;
}
But after it's complete i get an exception saying "Parameter count mismatch" from mscorlib
Maybe i miss something? i even don't enter the CommitNew method
|
|
|
|