मैं नहीं समझ सकता क्यों यह काम नहीं करता प्रस्तुत करना, या क्या मैं यह काम करने के लिए मिल की जरूरत है।गुप्त WPF तत्व बनाएं और बिटमैप को
, repro एक सरल WPF आवेदन बना सकते हैं और मुख्य विंडो के निर्माता thusly प्रतिस्थापित करने के लिए:
public MainWindow()
{
InitializeComponent();
// simple visual definition
var grid = new Grid { Width = 300, Height = 300 };
var text = new TextBlock
{
Text = "Y DON'T I WORK???",
FontSize = 100,
FontWeight =
FontWeights.Bold
};
grid.Children.Add(text);
// update the layout so everything is awesome cool
grid.Measure(grid.DesiredSize);
grid.Arrange(new Rect(grid.DesiredSize));
grid.UpdateLayout();
// create a BitmapSource from the visual
var rtb = new RenderTargetBitmap(
(int)grid.Width,
(int)grid.Height,
96,
96,
PixelFormats.Pbgra32);
rtb.Render(grid);
// Slap it in the window
this.Content = new Image { Source = rtb, Width = 300, Height = 300 };
}
यह एक खाली छवि का परिणाम है। अगर मैं आरटीबी को डिस्क पर पीएनजी के रूप में सहेजता हूं तो इसका सही आकार लेकिन पारदर्शी होता है।
अगर, हालांकि, मैं इस एक दृश्य है कि स्क्रीन पर प्रदर्शित किया गया है के साथ क्या है, यह ठीक काम करता है।
मैं एक दृश्य मैं एक बिटमैप के लिए गुप्त का निर्माण किया गया है प्रदान कर सकते हैं कैसे?
एक का बेटा ........ मैं DesiredSize जाँच एक बार जिस तरह से वापस जब मैं यह पूरा करने के प्रयास करने के लिए शुरू कर दिया और यह 0,0 नहीं था (कौन जानता है क्यों) और इसे फिर से जांच नहीं किया। धन्यवाद! – Will
हम सिर्फ पता चला यदि आप नियंत्रण आप प्रतिपादन कर रहे हैं अंदर अपनी ItemsSources करने के लिए बाध्य ItemsControls है गुप्त ऐसा लगता है कि यह है कि आप कॉल करने के लिए 'UpdateLayout()' या वे किसी भी आइटम प्रस्तुत करना नहीं है की क्या ज़रूरत है। –