मुझे Petzold.Media3D.ViewportInfo
का उपयोग करके ज्यामितीय गणना करने के एकमात्र उद्देश्य के लिए Viewport3D
की आवश्यकता है। मैं इसे Window
में रखना नहीं चाहता हूं या अन्यथा इसे प्रस्तुत करना पसंद करूंगा।क्या एक डब्ल्यूपीएफ नियंत्रण के लिए एक वास्तविक विजिट और वास्तविकता होने के लिए यह संभव है यदि इसे कभी प्रस्तुत नहीं किया गया हो?
मैं एक Viewport3D
instantiating और निम्नलिखित सी # विधि का उपयोग कर कुछ गुण निर्धारित करके यह पूरा करने के लिए प्रयास कर रहा हूँ:, मैं इस व्यूपोर्ट उपयोग करने के लिए एक करने के लिए माउस स्थान परिवर्तित करने के लिए प्रयास कर रहा हूँ बाद में
private Viewport3D CreateViewport(MainSettings settings)
{
var cameraPosition = new Point3D(0, 0, settings.CameraHeight);
var cameraLookDirection = new Vector3D(0, 0, -1);
var cameraUpDirection = new Vector3D(0, 1, 0);
var camera = new PerspectiveCamera
{
Position = cameraPosition,
LookDirection = cameraLookDirection,
UpDirection = cameraUpDirection
};
var viewport = new Viewport3D
{
Camera = camera,
Width = settings.ViewportWidth,
Height = settings.ViewportHeight
};
return viewport;
}
इस विधि का उपयोग कर 3 डी स्थान:
public Point3D? Point2dToPoint3d(Point point)
{
var range = new LineRange();
var isValid = ViewportInfo.Point2DtoPoint3D(_viewport, point, out range);
if (isValid)
return range.PointFromZ(0);
else
return null;
}
दुर्भाग्यवश, यह काम नहीं कर रहा है। मुझे लगता है कि कारण यह है कि व्यूपोर्ट के ActualWidth
और ActualHeight
दोनों शून्य हैं (और ये केवल-पढ़ने योग्य गुण हैं, इसलिए मैं उन्हें मैन्युअल रूप से सेट नहीं कर सकता)। (नोट:। मैं एक वास्तविक Viewport3D
गाया साथ ठीक उसी विधि का परीक्षण किया है, और यह ठीक काम किया है, इसलिए मुझे पता है कि इस मुद्दे को मेरी कनवर्टर विधि के साथ नहीं है)
किसी भी विचार कैसे मैं WPF ActualWidth
आवंटित करने के लिए प्राप्त कर सकते हैं और Width
और Height
सेटिंग्स के आधार पर नियंत्रण के ActualHeight
?
मैं Left
और Top
, को HorizontalAlignment
और VerticalAlignment
स्थापित करने की कोशिश की क्रमश: और मैं भी MinWidth
और MinHeight
साथ गड़बड़ है, लेकिन इन गुणों में से कोई भी ActualWidth
या ActualHeight
पर कोई प्रभाव नहीं पड़ा।
एक आकर्षण की तरह काम करता है, धन्यवाद। – devuxer
कूल, मुझे खुशी है कि यह काम करता है। यहां कुछ नया भी सीखा। :) – gehho