我有一个winforms绘画事件处理程序,用于处理图片框的绘画事件。正如绘画事件描述所言:“ ...重绘控件时将触发该事件”。我对此不太了解,我希望在WPF中在Image控件上引发同一事件。但是我找不到任何此类事件。这是winforms代码
如何在WPF中执行此操作?
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
if (pictureBox1.Image != null)
{
if (temprect != new Rectangle())
{
e.Graphics.DrawRectangle(new Pen(selectionBrush, 2), temprect);
}
}
else
{
using (Font myFont = new Font("Arial", 40, FontStyle.Bold))
{
e.Graphics.DrawString("No Image", myFont, Brushes.LightGray,
new Point(pictureBox1.Width / 2 - 132, pictureBox1.Height / 2 - 50));
}
}
}
我已经使用DrawingContext类将事件Hanlder中的所有代码转换为WPF。现在,我仅在“重新绘制Image控件时”可以引发的事件上需要帮助。
答案 0 :(得分:1)
WPF不使用WinForm的按需模式绘制。每当布局元素希望元素“重绘”自身时,布局系统就会调用public async Task<TenantDetails> ReadBrokerSettings(string tenantId)
{
FeedOptions queryOptions = new FeedOptions { MaxItemCount = 1 };
var query = this._client.CreateDocumentQuery<TenantDTO>(
UriFactory.CreateDocumentCollectionUri(_idDatabase, _idCollection), queryOptions)
.Where(f => f.tenantId == tenantId).AsDocumentQuery();
while(query.HasMoreResults)
{
var results = await query.ExecuteNextAsync();
if(results.Any())
{
return _iTenantAssembler.DtoToEntity(results.Single());
}
}
return null;
}
的{{1}}方法。您可以在您的课程中覆盖此方法:
OnRender
如果要显式重新渲染元素,则可以调用UIElement
方法。