将WPF宽度/高度转换为VB 6宽度/高度

将WPF宽度/高度转换为VB 6宽度/高度,wpf,vb6,Wpf,Vb6,我的WPF控件需要公开MinWidth和MinHeigth,以便宿主VB6应用程序使用和使用。从一个转换到另一个最可靠的方法是什么 (如果有帮助,我可以将VB6中的ScaleMode属性更改为任何内容。) VB 6 Twips为1/1440英寸 WPF使用1=1/96英寸 ElementHost.Child属性需要强制转换为FrameworkElement 需要考虑表单宽度和客户区宽度之间的差异 因此,公式是 vbForm.Width = (WpfControl.MinWidth / 96 *

我的WPF控件需要公开MinWidth和MinHeigth,以便宿主VB6应用程序使用和使用。从一个转换到另一个最可靠的方法是什么

(如果有帮助,我可以将VB6中的ScaleMode属性更改为任何内容。)

  • VB 6 Twips为1/1440英寸
  • WPF使用1=1/96英寸
  • ElementHost.Child属性需要强制转换为FrameworkElement
  • 需要考虑表单宽度和客户区宽度之间的差异
因此,公式是

vbForm.Width = (WpfControl.MinWidth / 96 * 1440) + (vbForm.Width - vbForm.ScaleWidth)
  • VB 6 Twips为1/1440英寸
  • WPF使用1=1/96英寸
  • ElementHost.Child属性需要强制转换为FrameworkElement
  • 需要考虑表单宽度和客户区宽度之间的差异
因此,公式是

vbForm.Width = (WpfControl.MinWidth / 96 * 1440) + (vbForm.Width - vbForm.ScaleWidth)

+1虽然我个人会写
vbForm.ScaleWidth=(WpfControl.MinWidth*1440)/96
但最好直接更改ScaleWidth,而且我更喜欢使用括号强制执行
*
/
+1的求值顺序,尽管我个人会写
vbForm.ScaleWidth=(WpfControl.MinWidth*1440)/96
最好直接更改ScaleWidth,而且我更喜欢使用括号强制执行
*
/
的求值顺序