|
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
|
|
|
|
|
I have this working. However, the data doesn't show up initially in the text box. The first click highlights the textbox. The second click shows the data and the 3rd click puts it in edit mode.
What property do I use to fill the data in initially?
Does it always take 3 clicks to get into edit mode? Is this how it works or are there different user options?
Thanks.
Sutton
|
|
|
|
|
Hi!
I'm new to WPF. I want to add a button(initially invisible) and every minute I've to make it visible. How to do this?
|
|
|
|
|
Add a button
set it's visibility to a property in your VM/code behind
add a timer to your vm that toggles the property
start the timer when you load the view
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Or use the entirely XAML way and use a Storyboard.
|
|
|
|
|
Pete O'Hanlon wrote: use a Storyboard
Advanced xaml work, I have not started working with more than the basics in xaml so a storyboard did not occur to me. I can see myself going through these apps in a couple of years and shaking the head in despair.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Instead of changing the visibility you could control the button's oppacity.
Something like:
DoubleAnimation animation = new DoubleAnimation(0, 1, new Duration(TimeSpan.FromMilliseconds(1400)));
yourButton.BeginAnimation(Load.OpacityProperty, animation);
|
|
|
|
|
Paste this into a window...
<Window.Resources>
<Style x:Key="SelectionButton3"
TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ClipToBounds="False">
<Grid.RowDefinitions>
<RowDefinition Height="75"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border BorderThickness="0,1.5,1.5,1.5"
Background="SteelBlue"
Height="35"
Grid.Column="1"
Grid.Row="0"
Margin="-31"
BorderBrush="DarkSlateBlue">
<Border.BitmapEffect>
<DropShadowBitmapEffect ShadowDepth="4"/>
</Border.BitmapEffect>
</Border>
<Rectangle Fill="SteelBlue"
Stroke="DarkSlateBlue"
Grid.Row="0"
Grid.Column="0">
<Rectangle.LayoutTransform>
<RotateTransform Angle="-45" />
</Rectangle.LayoutTransform>
<Rectangle.BitmapEffect>
<DropShadowBitmapEffect ShadowDepth="5"/>
</Rectangle.BitmapEffect>
</Rectangle>
<ContentPresenter x:Name="ContentArea"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Content="{Binding Path=Content, RelativeSource={RelativeSource TemplatedParent}}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground"
Value="LightGray" />
<Setter Property="FontFamily"
Value="Segoe UI" />
</Style>
</Window.Resources>
<Grid Margin="50">
<Button Click="Button_Click"
Style="{StaticResource SelectionButton3}"
Width="185">
</Button>
</Grid>
You see that both the rectangle and the border have drop shadows. How can I make the borders drop shadow only appear when the mouse is over any part of the control?
Thanks
Everything makes sense in someone's mind
|
|
|
|
|
Wonder why the univote.
removed is not a supported keyword when I try and compile. I was curious, can't help with gui stuff...
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Mycroft Holmes wrote: Wonder why the univote.
I think he has a uni-stalker.
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
|
|
|
|
|
You can do this via animations and the visual state manager.
This[^] manages the states between transitions in a control.
|
|
|
|
|
Hi!
I've loaded a picture into a Pictrue control. When I double click the picture,I've to write some values to a file. What Event Handler do I've to add for double clicking a picture?
|
|
|
|