|
Hi,
Thanks for your response, I've only just managed to pick this up.
I've looked at your code sample, many thanks.
The issue that I'm seeing is that using the "Name" declared for the Slider, I cannot use it in my CodeBehind without declaring an independent Slider object - which creates and new object and doesnt bind to the declared Slider in the XAML.
As the Slider is named and delcared in a the <Windows.Resources> section, and as part of a <DataTemplate>, do I need to reference by more than just the object name, e.g. would I need to call it something like someItem.sli as opposed to just sli?
Regards
Tony
|
|
|
|
|
How does one define IOleServiceProvider in a C# WPF application?
I was told that it was automatically recogized if I downloaded and installed the visual studio SDK. Is there some extra step I am missing?
http://i67.photobucket.com/albums/h292/Athono/programming/12-9-2012.png
IOleServiceProvider is from the Namespace Microsoft.TeamFoundation...
But I cannot declare this:
http://i67.photobucket.com/albums/h292/Athono/programming/12-9-2012-2.png
|
|
|
|
|
Are you trying to use this from a Visual Studio addin? That's what the VS SDK IOleServiceProvider is present in. Here's[^] an example using it.
|
|
|
|
|
<pre>
<HierarchicalDataTemplate DataType="{x:Type local:RegionViewModel}" ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<Image Width="16" Height="16" Margin="3,0" Source="Images\Region.png" />
<TextBlock Text="{Binding RegionName}" />
</StackPanel>
</HierarchicalDataTemplate>
</pre>
Hi in the above data template whenever the type is a region, it says to use a particular icon.
But I want to chose icon based on the name of the region! Could you please let me know How I do this please?
Regards
RK
|
|
|
|
|
|
I have a combo box of lookup items. It's bound to an ObservableCollection of LookupEntity. The code-behind:
private ObservableCollection<LookupEntity> _EmployeeTypes;
public ObservableCollection<LookupEntity> EmployeeTypes
{
get { return _EmployeeTypes; }
set
{
if (_EmployeeTypes != value)
{
_EmployeeTypes = value;
RaisePropertyChanged("EmployeeTypes");
}
}
}
private LookupEntity _SelectedEmployeeType;
public LookupEntity SelectedEmployeeType
{
get { return _SelectedEmployeeType; }
set
{
if (_SelectedEmployeeType != value)
{
_SelectedEmployeeType = value;
RaisePropertyChanged("SelectedEmployeeType");
}
}
}
and
public override void RefreshView()
{
ViewHeaderText = "Employee - " + employee.FullName;
FirstName = employee.FirstName;
LastName = employee.LastName;
SelectedEmployeeType = employee.EmployeeType;
}
the XAML
<ComboBox Grid.Row="2"
Grid.Column="1"
Width="120"
HorizontalAlignment="Left"
ItemsSource="{Binding EmployeeTypes}"
SelectedItem="{Binding SelectedEmployeeType, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Caption}">
<TextBlock.ToolTip>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Caption}"
FontWeight="Bold"/>
<TextBlock Text="{Binding Description}"/>
</StackPanel>
</TextBlock.ToolTip>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
The combo item is not being selected. Anyone see what's wrong?
If it's not broken, fix it until it is
|
|
|
|
|
As a quick solution you can use SelectedIndex bind to an int property.
|
|
|
|
|
If you want your combobox to automatically select the employee's type, then you need to set the SelectedValue and SelectedValuePath properties as well, something like this :-
<ComboBox Grid.Row="2"
Grid.Column="1"
Width="120"
HorizontalAlignment="Left"
SelectedValue="{Binding Path=SelecetdEmployee.SelecetdEmployeeType.EmpoyeeTypeID}"
SelecetdValuePath="EmployeeTypeID"
ItemsSource="{Binding EmployeeTypes}"
SelectedItem="{Binding SelectedEmployeeType, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Caption}">
<TextBlock.ToolTip>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Caption}"
FontWeight="Bold"/>
<TextBlock Text="{Binding Description}"/>
</StackPanel>
</TextBlock.ToolTip>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Just note that it is important to set the SelectedValue and SelectedValuePath properties before setting the ItemsSource property for the bindings to work properly.
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
|
|
|
|
|
Thjat did it!
Many thanks
+5
If it's not broken, fix it until it is
|
|
|
|
|
That did it!
Many thanks
+5
If it's not broken, fix it until it is
|
|
|
|
|
Glad to help!
When I was a coder, we worked on algorithms. Today, we memorize APIs for countless libraries — those libraries have the algorithms - Eric Allman
|
|
|
|
|
I want to use at command on hyper terminal by using Nokia x2 00 mobile . but i can't even type command
on hyper terminal. it might be possible that i made mistake while connection set up of mob to pc
can anybody tell me what are the steps to connect mobile to hyper terminal
|
|
|
|
|
You posted this question in the wrong forum....unless X2 uses Silverlight.
|
|
|
|
|
I have an application where I have the possibility of changing between different CultureInfos (for English, Spanish etc.).
I would like to be able to converter to currency based on which Culture Info has been selected.
Fx. I have the value $4.5 but I would like to show 3.49 EUR when Spanish is selected.
The question is should the converter be as IValueConverter or is it possible to place it in the culture info since this would be easier for me?
|
|
|
|
|
Use a ViewModel to hold the calculated value. A value converter is a little bit overkill for this purpose.
|
|
|
|
|
|
I'm trying to create a single control (Ratings) with a Textblock and a Dependency property
Ratings.XAML:
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:TestControl"
mc:Ignorable="d"
x:Class="TestControl.Ratings"
x:Name="UserControl"
d:DesignWidth="640" d:DesignHeight="480">
<Grid x:Name="LayoutRoot">
<TextBlock x:Name="RatingText" Text="{Binding Score}" Height="60" Margin="180,157,381,0" TextWrapping="Wrap" VerticalAlignment="Top"/>
</Grid>
</UserControl>
and Ratings.xaml.cs:
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TestControl
{
public partial class Ratings : UserControl
{
public Ratings()
{
this.InitializeComponent();
}
public static readonly DependencyProperty ScoreProperty = DependencyProperty.Register( "Score", typeof(int), typeof(Ratings), new FrameworkPropertyMetadata(1));
public int Score
{
get { return (int)GetValue(ScoreProperty); }
set { SetValue(ScoreProperty, value); }
}
}
}
Then I'm trying to call it from a project changing the Dependency Parameter
XAML:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TestControl"
x:Class="TestControl.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<Grid x:Name="LayoutRoot">
<local:Ratings Score="20" Height="120" Margin="96,51,292,0" VerticalAlignment="Top"/>
</Grid>
</Window>
and cs:
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace TestControl
{
public partial class MainWindow : Window
{
public MainWindow()
{
this.InitializeComponent();
}
}
}
But it isn't working!!! Can someone please tell me why???
|
|
|
|
|
You haven't set the DataContext for the UserControl :
public Ratings()
{
InitializeComponent();
LayoutRoot.DataContext = this;
}
NB: You'll probably want to set the DataContext on a child of the UserControl , not the UserControl itself; otherwise, you won't be able to bind the properties of the UserControl to the parent DataContext :
http://stackoverflow.com/a/13308966/124386[^]
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
hi men
I have a listView called lw1.
When I use lw1.selectedItem, I can check which item is selected.
But, how I can know which item is alone highlighted by mouse cursor?
note:http://dl.dropbox.com/u/45898865/Immagine.jpg[^]
in picture 1
gimppoi is selected with one click of mouse cursor
in picture 2
gimppoi is selected with one click of mouse cursor
poweooooooooo has alone mouse cursor over the line
good idea
I had tried it yesterday without success.
private void buttonGV_Click(object sender, RoutedEventArgs e)
{
Attivita attivita = null;
for (int i = 0; i < listViewAttivita.Items.Count; i++ )
if ( listViewAttivita.IsMouseOver )
attivita = listViewAttivita.Items[i] as Attivita;
if ( listViewAttivita.IsMouseOver )
this test is needless, because I want know which row is selected. That test told me if the mouse is over one of all ListView rows.
Can you tell me what I should search to understand which row has the mouse over?
this is the XAML part. Does it help?
<ListView ItemsSource= "{Binding AttivitaCollection, UpdateSourceTrigger=PropertyChanged}" Height="206" HorizontalAlignment="Left" Margin="12,33,0,0" Name="listViewAttivita" VerticalAlignment="Top" Width="auto" SelectionChanged="listViewAttivita_SelectionChanged">
<ListView.Resources>
<med:ImageConverter x:Key="imageConverter"/>
</ListView.Resources>
<ListView.View>
<GridView>
<GridViewColumn Header="Azioni registrate" Width="150" DisplayMemberBinding="{Binding nome, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<GridViewColumn Header="Stato" Width="auto" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Width="24" Name="buttonGV" Click="buttonGV_Click" Height="24" Background="Transparent" BorderBrush="Transparent">
<Image Source="{Binding Path=imgStato, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource imageConverter}}" />
</Button>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
I already posted this message
http://www.codeproject.com/Messages/4441464/highlight-list-view.aspx[^]
|
|
|
|
|
You're doing it wrong .
1) call the HitTest method to get the UIElement that is under the mouse.
2) chase up the VisualTree til you get a null or a ListViewItem.
|
|
|
|
|
I'm writing a program that construct a huge diagram. Also this diagram can be save to png file. I have no problems when I render my diagram on WPF canvas. The problem start when I trying save it to file. DrawingContext.DrawText stop drawing the text with size==10 when horizontal text position becomes more than 11K pixels!
Here is the code that shows this effect.
I create simple WPF application project and create one class (MainViewControl):
Here is the code for MainViewControl.cs:
class MainViewControl : FrameworkElement
{
public void Draw(DrawingContext context)
{
for (var i = 0; i < Width / 100; i++)
{
var text = new FormattedText((i * 100).ToString(CultureInfo.InvariantCulture), CultureInfo.CurrentCulture, FlowDirection.LeftToRight, new Typeface("Verdana"), 10, Brushes.Blue);
var textPos = new Point((double)i * 100f + 0.789 - text.Width / 2, Height / 2 - text.Height / 2);
context.DrawLine(new Pen(Brushes.Red, 1.0), new Point(i * 100, 0), new Point(i * 100, Height));
context.DrawRectangle(Brushes.White, null, new Rect(textPos.X, textPos.Y, text.Width, text.Height));
context.DrawText(text, textPos);
}
}
protected override void OnRender(DrawingContext context)
{
Draw(context);
}
} Here is the code for MainWindow.xaml:
<Window x:Class="DrawTextProblem.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:DrawTextProblem="clr-namespace:DrawTextProblem"
Title="MainWindow" >
<DockPanel>
<Button Content="Save" Click="ButtonClick" DockPanel.Dock="Top" HorizontalAlignment="Left" />
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" DockPanel.Dock="Top">
<DrawTextProblem:MainViewControl Width="50000" Height="200" x:Name="mainViewControl" />
</ScrollViewer>
</DockPanel>
</Window>
When click the button I do this:
private void ButtonClick(object sender, RoutedEventArgs e)
{
var dlg = new Microsoft.Win32.SaveFileDialog { FileName = "Image", DefaultExt = ".png", Filter = "Images (.png)|*.png" };
if (dlg.ShowDialog() == true)
{
try
{
var bounds = new Rect(0, 0, mainViewControl.Width, mainViewControl.Height);
var diagramBitmap = new RenderTargetBitmap((int)bounds.Width, (int)bounds.Height, 96d, 96d, PixelFormats.Default);
var drawingVisual = new DrawingVisual();
var context = drawingVisual.RenderOpen();
context.DrawRectangle(Brushes.White, null, bounds);
mainViewControl.Draw(context);
context.Close();
diagramBitmap.Render(drawingVisual);
var imageFile = new FileStream(dlg.FileName, FileMode.Create, FileAccess.Write);
var encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(diagramBitmap));
encoder.Save(imageFile);
imageFile.Flush();
imageFile.Close();
MessageBox.Show("Image successfully saved.", "Image saved", MessageBoxButton.OK, MessageBoxImage.Information);
}
catch (Exception exception)
{
MessageBox.Show(string.Format("Error:\n{0}", exception.Message), string.Empty, MessageBoxButton.OK, MessageBoxImage.Error);
}
}
}
When I start this application I see MainViewControl on the MainWindow with all text labels every 100 pixels. If I click save button, text labels are disappearing in saved image after 11K pixels!
It's the same for text size = 10, 11 or 7, BUT not for 8, 9, 16 etc. Moreover, If I use text size 10.001 it works fine!
Does anybody know about this problem? It's a WPF bug?
|
|
|
|
|
I have the exact same issue! I would appreciate any help
|
|
|
|
|
How do you stop a WebBrowser object in WPF?
The stop method is not an option becasue that is only available in windows forms.
http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.stop.aspx
And Dispose does not seem to be the answer either.
I am not using the webbrowser class for its visible properties to the user. I am using it to navagate several URL's in a row. This can have a wierd effect where the browser starts sending back load completed messages when the body of the html is not usable and I just want it stopped.
|
|
|
|
|
Please do not post the same question more than once. you can edit your original if it needs more detail.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
How do you stop a WebBrowser object in WPF?
The stop method is not an option becasue that is only available in windows forms.
http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.stop.aspx
And Dispose does not seem to be the answer either.
|
|
|
|