月ピッカーに奇妙な問題があります。初期化時の幅が非常に広いです。
MVVM Light Toolkit を使用していますが、それが問題を引き起こしているようです。
実際、標準の WPF アプリケーションでは、同じコードが機能します...
別のヒントとして、ポップアップ コントロールを使用しない場合、このコードは MVVM Light Toolkit で動作します。
これが私のコードです:
<Window x:Class="MvvmLight1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
SizeToContent="WidthAndHeight"
Title="MVVM Light Application"
DataContext="{Binding Main, Source={StaticResource Locator}}">
<Grid>
<Popup IsOpen="{Binding ElementName=btn, Path=IsChecked}" StaysOpen="False" >
<Calendar x:Name="_calendar"
Loaded="_calendar_OnLoaded"
DisplayModeChanged="_calendar_DisplayModeChanged"
DisplayMode="Month" />
</Popup>
<ToggleButton Height="50" Width="100" Content="Click me" x:Name="btn" ClickMode="Release"/>
</Grid>
コードビハインドは次のとおりです。
using System.Windows;
using MvvmLight1.ViewModel;
using System.Windows.Controls;
namespace MvvmLight1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void _calendar_DisplayModeChanged(object sender, CalendarModeChangedEventArgs e)
{
_calendar.DisplayMode = CalendarMode.Year;
}
private void _calendar_OnLoaded(object sender, RoutedEventArgs e)
{
_calendar.DisplayMode = CalendarMode.Year;
}
}
}
空想は何もありません...私はしばらくの間それに苦労しています..どんな助けもいただければ幸いです!
前もって感謝します!