2009-10-09 13 views
5

सिल्वरलाइट 3 आपको अपना एप्लिकेशन out of the browser चलाने की अनुमति देता है, जो आपके डेस्कटॉप/स्टार्ट मेनू पर एक लिंक स्थापित करता है।सिल्वरलाइट 3 - ब्राउज़र से बाहर HtmlPage.Window.Navigate

समस्या हम वर्तमान में

System.Windows.Browser.HtmlPage. 
    Window.Navigate(new Uri("http://<server>/<resource>"), "_blank") 

उपयोग कर रहे हैं (यह एक 'प्रिंट अनुकूल' पृष्ठ प्रदान करने के लिए उपयोगकर्ताओं को मुद्रित करने के लिए के लिए है) एक नई ब्राउज़र विंडो में URL लोड करने के लिए है। यह सामान्य एसएल ब्राउज़र संस्करण में काम करता है, लेकिन ब्राउज़र के बाहर हमें 'डोम/स्क्रिप्टिंग ब्रिज अक्षम' मिलता है। कॉल जारी करते समय अपवाद फेंक दिया गया।

क्या कोई विकल्प है जो ब्राउज़र से बाहर काम करता है?

मैंने Open page in silverlight out of browser देखा है, लेकिन मुझे इसे पूरी तरह से कोड में करने की ज़रूरत है, इसलिए मैं एक (छुपा) हाइपरलिंक बटन नहीं जोड़ना चाहता हूं और फिर प्रोग्रामेटिक रूप से 'क्लिक करें' (जब तक कि मुझे बिल्कुल ...) ।

उत्तर

5

आप हाइपरलिंक बटन से विरासत का प्रयास कर सकते हैं और सार्वजनिक क्लिक() विधि को उजागर कर सकते हैं (जिसे आप तत्काल कर सकते हैं और इसे xaml में घोषित करने के बजाय कोड से कॉल कर सकते हैं)। विवरण यहां: http://mokosh.co.uk/post/2009/10/08/silverlight-oob-open-new-browser-window/

+3

आपकी साइट इस उत्तर को प्रस्तुत नहीं करती है। यहां दोबारा पोस्ट करना चाहिए। –

2

मैंने हाइपरलिंक बटन से प्राप्त करने के विचार के आधार पर एक एक्सटेंशन विधि लिखी।

public static class UriExtensions { 

class Clicker : HyperlinkButton { 
    public void DoClick() { 
    base.OnClick(); 
    } 
} 

static readonly Clicker clicker = new Clicker(); 

public static void Navigate(this Uri uri) { 
    Navigate(uri, "_self"); 
} 

public static void Navigate(this Uri uri, string targetName) { 
    clicker.NavigateUri = uri; 
    clicker.TargetName = targetName; 
    clicker.DoClick(); 
} 
} 

तो उपयोग करते हैं, यह आसान उपयोग कर सकते हैं

नई उरी ("http://www.google.com") .Navigate ("_ blank") की तरह;

+0

अच्छा काम :) !! – Gomino

संबंधित मुद्दे