所以我Calendar在VS2010的全新WPF应用程序中删除了MainWindow.xaml上的标准WPF 控件.如果我单击日历中的某一天,然后尝试单击该应用程序的"关闭"按钮,则必须在关闭按钮上单击两次才能接受该单击.它表现得好像Calendar没有释放鼠标与应用程序的其余部分进行交互.
我已经改为Focusable假,没有任何改变,我已经尝试重写PreviewOnMouseUp并呼吁ReleaseMouseCapture()无济于事.我已经做了同样的事情MouseLeave,并MouseLeftButtonUp具有相同的结果.鉴于这些东西都不起作用我怀疑我正在咆哮错误的树.虽然也许我的GoogleFu今天不能满足要求,但谷歌已经没有任何注意事项了.
有任何想法吗?
我有以下课程:
public class Day
{
public int Date { get; set; }
public String DayName { get; set; }
public Day()
{
}
public Day(int date, string dayName)
{
Date = date;
DayName = dayName;
CommandManager.RegisterClassCommandBinding(typeof(Day), new CommandBinding(DayClick, new ExecutedRoutedEventHandler(OnExecutedDayClick),
new CanExecuteRoutedEventHandler(OnCanExecuteDayClick)));
}
public static readonly RoutedCommand DayClick = new RoutedCommand("DayClick", typeof(Day));
private static void OnCanExecuteDayClick(object sender, CanExecuteRoutedEventArgs e)
{
((Day)sender).OnCanExecuteDayClick(e);
}
private static void OnExecutedDayClick(object sender, ExecutedRoutedEventArgs e)
{
((Day)sender).OnExecutedDayClick(e);
}
protected virtual void OnCanExecuteDayClick(CanExecuteRoutedEventArgs e)
{
e.CanExecute = …Run Code Online (Sandbox Code Playgroud) 我正在使用WPF RichTextBox处理一个文字处理器类型的应用程序.我正在使用SelectionChanged事件使用以下代码确定RTB中当前选择的字体,字体粗细,样式等:
private void richTextBox_SelectionChanged(object sender, RoutedEventArgs e)
{
TextSelection selection = richTextBox.Selection;
if (selection.GetPropertyValue(FontFamilyProperty) != DependencyProperty.UnsetValue)
{
//we have a single font in the selection
SelectionFontFamily = (FontFamily)selection.GetPropertyValue(FontFamilyProperty);
}
else
{
SelectionFontFamily = null;
}
if (selection.GetPropertyValue(FontWeightProperty) == DependencyProperty.UnsetValue)
{
SelectionIsBold = false;
}
else
{
SelectionIsBold = (FontWeights.Bold == ((FontWeight)selection.GetPropertyValue(FontWeightProperty)));
}
if (selection.GetPropertyValue(FontStyleProperty) == DependencyProperty.UnsetValue)
{
SelectionIsItalic = false;
}
else
{
SelectionIsItalic = (FontStyles.Italic == ((FontStyle)selection.GetPropertyValue(FontStyleProperty)));
}
if (selection.GetPropertyValue(Paragraph.TextAlignmentProperty) != DependencyProperty.UnsetValue)
{
SelectionIsLeftAligned = (TextAlignment)selection.GetPropertyValue(Paragraph.TextAlignmentProperty) == TextAlignment.Left; …Run Code Online (Sandbox Code Playgroud) 我正在用 EF Core 3.1 和 WPF (.NET Core 3.1) 替换旧的数据库管理 UI(大约 2005 年)。因为它是一个现有数据库,其架构我无法更改,所以我使用 Scaffold-DbContext 为我创建实体类。到目前为止,一切都很好。
然后我使用以下代码来获取一些要使用的数据:
_mainFood = DbContext.MainFoods.Include(m => m.MainFoodsFoodGroupsBridge)
.Include(m => m.MainFoodsSourcesBridge).FirstOrDefault(m => m.RefNum == Id);
Run Code Online (Sandbox Code Playgroud)
我得到了我所期望的单个 MainFoods 记录,以及 MainFoodsFoodGroupsBridge 和 MainFoodsSourcesBridge 中的几行,也正如我所期望的那样。
我遇到的问题与 MainFoodsFoodGroupsBridge 和 MainFoods 之间的关系有关。Scaffold-DbContext 创建的关系如下:
modelBuilder.Entity<MainFoodsFoodGroupsBridge>(entity =>
{
entity.HasKey(e => e.TableKey);
entity.HasIndex(e => new { e.RefNum, e.FoodGroupId })
.HasName("IX_UniqueRefNum_FoodGroupID")
.IsUnique();
entity.Property(e => e.FoodGroupId).HasColumnName("FoodGroupID");
entity.HasOne(d => d.FoodGroup)
.WithMany(p => p.MainFoodsFoodGroupsBridge)
.HasForeignKey(d => d.FoodGroupId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("FK_MainFoodsFoodGroupsBridge_FoodGroupLookup");
entity.HasOne(d => d.RefNumNavigation)
.WithMany(p => p.MainFoodsFoodGroupsBridge)
.HasForeignKey(d => d.RefNum)
.OnDelete(DeleteBehavior.ClientSetNull) …Run Code Online (Sandbox Code Playgroud) 我有一个类在C#中处理序列化,称为Serializer.它的实现如下:
public class Serializer
{
public void SerializeRulesManager(string filename, RulesManager rulesManager)
{
Stream stream = File.Open(filename, FileMode.Create);
try
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
binaryFormatter.Serialize(stream, rulesManager);
}
finally
{
stream.Close();
}
}
public RulesManager DeserializeRulesManager(string filename)
{
RulesManager rulesManager = null;
Stream stream = File.Open(filename, FileMode.Open);
try
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
rulesManager = (RulesManager)binaryFormatter.Deserialize(stream);
}
finally
{
stream.Close();
}
return rulesManager;
}
}
Run Code Online (Sandbox Code Playgroud)
非常简单的东西,它适用于我的所有单元测试.RulesManager被正确序列化和反序列化,因此我知道图表是好的.
问题来自以下代码:
public void Save(string filename)
{
Cursor.Current = Cursors.WaitCursor;
try
{
_serializer.SerializeRulesManager(filename, _rulesManager);
} …Run Code Online (Sandbox Code Playgroud)