Hast du die Assembly "System.Windows.Forms.DataVisualization.dll" denn auch als Referenz bei deinem Projekt eingebunden (s. http://msdn.microsoft.com/de-de/library/system.windows.forms.datavisualization.charting.chart.aspx)
Das fehlt ein "s" im Fontnamen: "Microsoft Sans Serif"
Sonst wird halt ein Default-Font gewählt.
Edit: Um nicht explizit einen Fontnamen zu wählen, der evtl. auf dem System nicht vorhanden ist, kann man auch einfach die FontFamily.GenericSansSerif-Eigenschaft benutzen. Für eine bestimmte Größe und/oder Style dann z.B.
new Font(FontFamily.GenericSansSerif, 10);
new Font(FontFamily.GenericSansSerif, 10, FontStyle.Italic);
verwenden.
Desweiteren gibt es noch FontFamily.GenericMonospace sowie FontFamily.GenericSerif...
Hallo,
ich versuche seit Neuestem das MVVM-Pattern für meine Windows 8 App / Windows 8 Phone App zu verwenden.
Leider bin ich auf das Problem gestoßen, dass ich bei Klick auf einem Button nicht die View in den ContentController laden kann. Meine Struktur sieht so aus:
Projekt Portable Class Library (Abgekürzt Mvvm.PCL)
MainViewModel.cs
ViewModelLocator.cs
Projekt Windows 8 Phone (Abgekürzt Mvvm.Phone) (deaktiviert)
Projekt Windows 8 App (Abgekürzt Mvvm.Store)
MainView.xaml
SecondView.xaml
ThirdView.xaml
MainPage.xaml
MainPage.xaml beinhaltet eine AppBar mit Buttons und einen ContentController. Der ContentController soll die Views beinhalten.
Das ist die MainPage.xaml
Hier sieht man, dass ich bei den Buttons ein Command versuche (welches jedoch nicht funktioniert). Bei Klick auf dem Button soll sich die View im ContentControl dementsprechend anpassen (indem es in die MainViewModel.cs geht).
Beim Laden der MainPage soll als Anfangs-View die MainView.xaml verwendet werden (funktioniert auch nicht).
Mehr kann jedoch in der ReadMe.txt, welche unten als Download vorhanden ist, gelesen werden.
<Page
x:Name="pageRoot"
x:Class="Mvvm.Store.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Mvvm.Store"
xmlns:common="using:Mvvm.Store.Common"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
DataContext="{Binding Main, Source={StaticResource Locator}}">
<Grid Style="{StaticResource LayoutRootStyle}">
<Grid.RowDefinitions>
<!-- View -->
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- ContentControl should have MainView as first page on startup -->
<ContentControl Name="MyContentControl" Grid.Row="0" Content="{Binding CurrentView}" IsTabStop="False" Margin="10" />
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="ApplicationViewStates">
<VisualState x:Name="FullScreenLandscape"/>
<VisualState x:Name="Filled"/>
<VisualState x:Name="FullScreenPortrait">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemGridView" Storyboard.TargetProperty="Padding">
<DiscreteObjectKeyFrame KeyTime="0" Value="96,136,86,56"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Snapped">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="pageTitle" Storyboard.TargetProperty="Style">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SnappedPageHeaderTextStyle}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemListView" Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemGridView" Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Grid>
<!-- Bottom AppBar -->
<Page.BottomAppBar>
<AppBar IsOpen="True" x:Name="botAppBar" VerticalContentAlignment="Bottom" VerticalAlignment="Bottom">
<GridView
x:Name="itemGridView"
AutomationProperties.AutomationId="ItemsGridView"
AutomationProperties.Name="Items"
TabIndex="1"
Grid.Row="1"
Grid.ColumnSpan="2"
VerticalAlignment="Top"
HorizontalAlignment="Left"
SelectionMode="Single"
IsSwipeEnabled="false"
IsItemClickEnabled="True" MaxHeight="100">
<!--"-->
<Button Command="{Binding DisplayView}" CommandParameter="SecondView" Style="{StaticResource MyMenue}">
<Button.Content >
<StackPanel>
<TextBlock Text="SecondView" TextAlignment="Center"></TextBlock>
</StackPanel>
</Button.Content>
</Button>
<Button Command="{Binding DisplayView}" CommandParameter="ThirdView" Style="{StaticResource MyMenue}">
<Button.Content >
<StackPanel>
<TextBlock Text="ThirdView" TextAlignment="Center"></TextBlock>
</StackPanel>
</Button.Content>
</Button>
</GridView>
</AppBar>
</Page.BottomAppBar>
</Page>
Meine App.xaml , wo das ViewModel der Portable Class Library verwendet wird.
<?xml version="1.0" encoding="utf-8"?>
<Application x:Class="Mvvm.Store.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Mvvm.Store"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="using:Mvvm.PCL.ViewModel"
mc:Ignorable="d">
<Application.Resources>
<ResourceDictionary>
<vm:ViewModelLocator p7:Key="Locator" p8:IsDataSource="True"
xmlns:p8="http://schemas.microsoft.com/expression/blend/2008"
xmlns:p7="http://schemas.microsoft.com/winfx/2006/xaml" />
<ResourceDictionary.MergedDictionaries>
<!--
Styles that define common aspects of the platform look and feel
Required by Visual Studio project and item templates
-->
<ResourceDictionary Source="Common/StandardStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
Zuletzt noch das MainViewModel.cs , wo die Views gesetzt werden sollen.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows.Input;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;
#if NETFX_CORE
using Mvvm.Store.Views;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
#endif
namespace Mvvm.PCL.ViewModel
{
/// <summary>
/// This class contains properties that the main View can data bind to.
/// <para>
/// Use the <strong>mvvminpc</strong> snippet to add bindable properties to this ViewModel.
/// </para>
/// <para>
/// You can also use Blend to data bind with the tool's support.
/// </para>
/// <para>
/// See http://www.galasoft.ch/mvvm
/// </para>
/// </summary>
public class MainViewModel : ViewModelBase, INotifyPropertyChanged
{
/// <summary>
/// Initializes a new instance of the MainViewModel class.
/// </summary>
public MainViewModel()
{
#if NETFX_CORE
DisplayView = new RelayCommand<string>(DisplayViewCommandExecute);
#endif
}
#if NETFX_CORE
#region Commands
public RelayCommand<string> DisplayView { get; private set; }
#endregion
#region CurrentView Property
public const string CurrentViewPropertyName = "CurrentView";
private Page _currentView;
public Page CurrentView
{
get { return _currentView; }
set
{
if (_currentView == value)
return;
_currentView = value;
RaisePropertyChanged(CurrentViewPropertyName);
}
}
#endregion
private void DisplayViewCommandExecute(string viewName)
{
switch (viewName)
{
case "SecondView":
CurrentView = new SecondView();
break;
case "ThirdView":
CurrentView = new ThirdView();
break;
}
}
#endif
}
}
Problem: Die Commands
Command="{Binding DisplayView}" CommandParameter="SecondView"
funktionieren nicht und ich weiß auch nicht, wie ich beim Starten der App das ContentControl mit der MainView.xaml befülle.
Mein Programm http://www10.zippyshare.com/v/29730402/file.html (Visual Studio 2012 benötigt (nicht Express))
Hi, ich kenne die RenderTransform (Render-Offset) und LayoutTransform (Koordination-Transformation) von WPF, aber wozu bzw. was macht die VisualTransform der Visual-Class? Leider findet man dazu wenig im Internet.
So, hab mal das folgende benutzt:
http://www.codeproject.com/Articles/7388/A-Simple-C-Wrapper-for-the-AviFile-Library
Ist aber auch leider langsam...
Hab mal per Threads versucht die Arbeit des Extrahierens auf verschiedenen CPU-Kernen zu verteilen. Problem: es entstehen Artefakte im Video. Kommt das eventuell durch mehrere Zugriffe auf die eine Videodatei?
Wieso nicht?
Ich habe den Pointer auf eine Adresse und möchte von dort auslesen und kann es eben nicht. Wäre ich Vollprofi und allwissend müsste ich ja nicht fragen
Hallo.
Danke für deine Antwort PuppetMaster2k.
Ich habe nun eine statische Klasse Bootstrapper. Diese beinhaltet eine Methode Load. Darin registriere ich nun meine Services und mache sonstige Initialisierungen.
Die LoadMethode rufe ich dann im Codebehind der MainView auf. Das ist dann die einzige Methode - neben InitializeComponent - im Codebehind.
Das ist nicht das Problem. Ich steppe ja drüber und hab im Eventhandler eines Buttons im Window einen Breakpoint. Sobald der Button gedrückt wird bleibt der Debugger auch stehen, aber eben ohne Sourcecode sondern nur im Disassembly. Obwohl das alles mein eigener Code ist. Also nicht das Framework.
Kennt jmd. von euch einen XML Pretty Printer, idealerweise Open-Source und in C# (bzw. einer .NET Sprache) geschrieben, der halbwegs gut konfigurierbar ist?
Was das Ding können sollte:
* Text in XML Elementen umbrechen
* Text in XML Elementen einrücken (fix, bzw. aligned mit dem Text von "gleichnamigen" Elementen die davor kommen)
* "Try to fit on single line"
* Unterschiedliche Regeln für unterschiedliche Elemente
* Primäre Elemente sortieren
* Leerzeilen nach bestimmten Regeln einfügen
uswusf.
Im Prinzip soll das Ding ein XML Dokumente nach bestimmten Regeln formatieren können, so dass es angenehm zu lesen ist. Konkret geht es dabei um auto-formatting von ECMA XML documentation comments.
Hallo zusammen ...
Eine Combo soll mir als Auswahl für eine Quelle dienen:
<ComboBox DockPanel.Dock="Top" Margin="4,1,8,0" SelectedIndex="0" Padding="2" x:Name="SourceCombo" SelectionChanged="SourceCombo_SelectionChanged">
<ComboBoxItem Name="SourceZutaten" Content="Zutaten" />
<ComboBoxItem Name="SourceRezepte" Content="Rezepte" />
Nun versuche ich mittels Trigger die ItemSource Property einer ListView je nach Auswahl ändern:
<ListView MouseMove="OnListViewMouseMove" MouseDown="OnListViewMouseDown" BorderBrush="{x:Null}" Name="bekannteZutatenListView" SelectionMode="Single">
<ListView.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsSelected, ElementName=SourceZutaten, Converter={StaticResource myDebugConverter}, ConverterParameter=Source}" Value="true">
<Setter Property="ListView.ItemContainerStyle" Value="{StaticResource myLittleZutatenItemStyle}" />
<Setter Property="ListView.ItemsSource" Value="{Binding Path=ZutatenCollection, ElementName=ThisUC.IMainWindow.IZutatManager, UpdateSourceTrigger=PropertyChanged}" />
</DataTrigger>
<!--<DataTrigger Binding="{Binding Path=IsSelected, ElementName=SourceRezepte}" Value="True">
<Setter Property="ListView.ItemContainerStyle" Value="{x:Null}" />
<Setter Property="ListView.ItemsSource" Value="{Binding Path=rezeptCollection, ElementName=ThisUC.IMainWindow, UpdateSourceTrigger=PropertyChanged}" />
</DataTrigger>-->
</Style.Triggers>
</Style>
</ListView.Style>
</ListView>
Mittels DebugConverter habe ich versucht das Problem zu analysieren, komme aber nicht dahinter warum der Trigger nicht greift. .... oder habt ihr vielleicht eine andere Lösung ... wie würdet ihr das lösen ?
Hallo Leute,
aktuell reagiere ich auf ein Tastendruck über ein GamePad noch folgendermaßen:
using SlimDX.DirectInput;
private void timer1_Tick(object sender, EventArgs e)
{
GameControllerState state = controller.GetState();
progressBar1.Value = state.X; // Joystick
if (state.IsPressed(0)) // Tasten
{
// Tue dies
}
Ihr werdet mir wohl zustimmen: Es ist in einer sehr schlechten Art gelöst worden.
Statt immer abzufragen, ob die Taste gedrückt wurde,
würde ich lieber auf das Ereignis selbst reagieren.
Leider finde ich beim SlimDX nichts dazu.
Mag mir wer unter die Arme greifen und mir ggf. vielleicht ein kleines Snippet posten, wie man ein Listener bewerkstelligen kann oder mich wenigstens in die richtige Richtung lenken?
Mfg Fragr.
Nur ging es da um das Scrollverhalten. Ich stand mit der Maus über der inneren und habe gescrollt und was ich wollte war, dass sich die äußere scrollt
Das ist nicht das Problem. Die Inneren Items binden auf den selben SelectedIndex.
Und im ItemsControl.Template erstellst du ein ControlTemplate mit Scrollviewer um den Itemspresenter. Fertig.
Aber vieleicht kann mir noch jemand bei meinem Problem helfen.
Zeig doch mal nen bisschen Code. So kann ich mir kein Bild machen.
Sie hatt doch alles genau beschrieben.
Geht nicht weil ein ListViewItem ein ContentControl ist. Sprich du muss für jedes ListviewItem ein ContentControlTemplate anlegen.
Oder einfach über einen Style.
Ich wüsste nicht wieso BitBlt unter x64 nicht funktionieren sollte.
Leider stolpert man öfters noch über falsche PInvoke Signaturen, die dann in bestimmten Fällen Probleme machen können - wie z.B. unter x64.
Grundsätzlich kann es da aber kein Problem geben, sonst ginge es ja auch in anderen Anwendungen (C, C++, ...) nicht.