คำถามติดแท็ก wpf

Windows Presentation Foundation หรือ WPF เป็นระบบย่อยสำหรับการแสดงผลส่วนต่อประสานกับผู้ใช้ในแอพพลิเคชั่นที่ทำงานบน Windows

6
ResourceDictionary ในชุดประกอบแยกต่างหาก
ฉันมีไฟล์พจนานุกรมทรัพยากร (MenuTemplate.xaml, ButtonTemplate.xaml และอื่น ๆ ) ที่ฉันต้องการใช้ในหลายแอปพลิเคชันแยกกัน ฉันสามารถเพิ่มพวกมันลงในชุดประกอบของแอปพลิเคชันได้ แต่จะดีกว่าถ้าฉันรวบรวมทรัพยากรเหล่านี้ในแอสเซมบลีเดียวและให้แอปพลิเคชันของฉันอ้างอิงได้ใช่ไหม หลังจากสร้างแอสเซมบลีของทรัพยากรฉันจะอ้างอิงใน App.xaml ของแอปพลิเคชันของฉันได้อย่างไร ขณะนี้ฉันใช้ ResourceDictionary.MergedDictionaries เพื่อรวมไฟล์พจนานุกรมแต่ละไฟล์ ถ้าฉันมีพวกเขาในการชุมนุมฉันจะอ้างอิงพวกเขาเป็น xaml ได้อย่างไร?

22
MVVM: การสอนตั้งแต่ต้นจนจบ?
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันเป็นโปรแกรมเมอร์แบบฟอร์ม C # / Windows ที่มีประสบการณ์มากกว่า 5 ปี ฉันตรวจสอบ WPF โดยใช้รูปแบบการออกแบบ MVVM (Model-View-ViewModel) ฉันค้นหาบทเรียนทางอินเทอร์เน็ต ฉันได้ดูวิดีโอที่ยอดเยี่ยมทั้งหมดของ Jason Dolinger ด้วยซ้ำ แม้ว่าฉันจะได้พบมากฉันไม่ได้พบคนที่พาฉันตั้งแต่ต้นจนจบ สิ่งที่ฉันต้องการจริงๆคือบทช่วยสอนที่ไม่ถือว่าความรู้ WPF ก่อนหน้านี้ อะไรคือบทช่วยสอน WPF-MVVM ที่คุณโปรดปรานที่ช่วยให้คุณเรียนรู้?
243 c#  .net  wpf  mvvm 

6
ตรวจพบข้อยกเว้นทั่วโลกในแอปพลิเคชัน WPF หรือไม่
เรามีแอปพลิเคชั่น WPF ซึ่งบางส่วนของมันอาจเกิดข้อยกเว้นในขณะทำงาน ฉันต้องการจับข้อยกเว้นที่ไม่สามารถจัดการได้ทั่วโลกและบันทึกพวกเขา แต่อย่างอื่นดำเนินการโปรแกรมต่อไปราวกับว่าไม่มีอะไรเกิดขึ้น (kinda เช่น VB's On Error Resume Next) เป็นไปได้ใน C #? และถ้าเป็นเช่นนั้นฉันจะต้องวางรหัสการจัดการข้อยกเว้นไว้ที่ไหน ขณะนี้ฉันไม่เห็นจุดใดจุดหนึ่งที่ฉันสามารถล้อมรอบtry/ catchและซึ่งจะจับข้อยกเว้นทั้งหมดที่อาจเกิดขึ้น และถึงอย่างนั้นฉันก็จะเหลืออะไรก็ตามที่ถูกประหารเพราะจับได้ หรือฉันกำลังคิดผิดทางอย่างน่ากลัวที่นี่? การทางพิเศษแห่งประเทศไทย:เพราะหลายคนด้านล่างชี้ให้เห็น: แอพลิเคชันไม่ได้สำหรับการควบคุมโรงไฟฟ้านิวเคลียร์ ถ้ามันล้มเหลวมันไม่ได้เป็นเรื่องใหญ่อะไร แต่มีข้อยกเว้นแบบสุ่มที่เกี่ยวข้องกับ UI เป็นส่วนใหญ่เป็นสิ่งที่สร้างความรำคาญในบริบทที่มันจะถูกใช้ มี (และอาจจะยังคงเป็น) บางส่วนและเนื่องจากใช้สถาปัตยกรรมปลั๊กอินและอาจขยายโดยผู้อื่น (เช่นนักเรียนในกรณีนั้นดังนั้นจึงไม่มีนักพัฒนาที่มีประสบการณ์ที่สามารถเขียนโค้ดปราศจากข้อผิดพลาดได้อย่างสมบูรณ์) สำหรับข้อยกเว้นที่ตรวจพบ: ฉันบันทึกไว้ในไฟล์บันทึกรวมถึงการติดตามสแต็กทั้งหมด นั่นคือจุดรวมของการออกกำลังกายนั้น เพียงเพื่อตอบโต้คนเหล่านั้นที่กำลังเปรียบเทียบกับ OERN ของ VB อย่างแท้จริง ฉันรู้ว่าการละเว้นข้อผิดพลาดบางประเภทเป็นอันตรายและอาจทำให้แอปพลิเคชันของฉันเสียหาย อย่างที่เคยกล่าวไว้ก่อนหน้านี้โปรแกรมนี้ไม่ได้มีความสำคัญสำหรับทุกคน ไม่มีใครในใจที่ถูกต้องของพวกเขาจะพนันความอยู่รอดของอารยธรรมมนุษย์ในนั้น มันเป็นเพียงเครื่องมือเล็ก ๆ สำหรับการทดสอบแนวทางการออกแบบบางอย่าง วิศวกรรมซอฟต์แวร์. สำหรับการใช้งานแอปพลิเคชั่นในทันทีมีหลายสิ่งที่อาจเกิดขึ้นได้ยกเว้น: ไม่มีการจัดการข้อยกเว้น - กล่องโต้ตอบข้อผิดพลาดและการออกจากแอปพลิเคชัน ต้องทำการทดสอบซ้ำแม้ว่าจะมีอีกเรื่องหนึ่ง …

20
การเชื่อมโยงข้อมูลกับ SelectedItem ใน WPF Treeview
ฉันจะดึงรายการที่เลือกใน WPF-treeview ได้อย่างไร ฉันต้องการทำสิ่งนี้ใน XAML เพราะฉันต้องการผูกมัน คุณอาจคิดว่ามันเป็นSelectedItemแต่เห็นได้ชัดว่าไม่มีอยู่เป็นแบบอ่านอย่างเดียวและใช้ไม่ได้ นี่คือสิ่งที่ฉันต้องการจะทำ: <TreeView ItemsSource="{Binding Path=Model.Clusters}" ItemTemplate="{StaticResource ClusterTemplate}" SelectedItem="{Binding Path=Model.SelectedCluster}" /> ฉันต้องการผูกSelectedItemคุณสมบัติให้กับ Model ของฉัน แต่นี่ทำให้ฉันเกิดข้อผิดพลาด: คุณสมบัติ 'SelectedItem' เป็นแบบอ่านอย่างเดียวและไม่สามารถตั้งค่าได้จากมาร์กอัป แก้ไข: ตกลงนี่คือวิธีที่ฉันแก้ไขสิ่งนี้: <TreeView ItemsSource="{Binding Path=Model.Clusters}" ItemTemplate="{StaticResource HoofdCLusterTemplate}" SelectedItemChanged="TreeView_OnSelectedItemChanged" /> และใน codebehindfile ของ xaml ของฉัน: private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e) { Model.SelectedCluster = (Cluster)e.NewValue; }
241 c#  wpf  mvvm  treeview  selecteditem 

3
Page vs Window ใน WPF?
อะไรคือความแตกต่างระหว่างหน้าและหน้าต่างใน WPF เมื่อคุณเพิ่มไฟล์ใหม่ใน Solution Explorer?
237 c#  wpf 

4
ความแตกต่างระหว่าง ObservableCollection และ BindingList
ฉันต้องการทราบความแตกต่างระหว่างObservableCollectionและBindingListเนื่องจากฉันใช้ทั้งคู่เพื่อแจ้งให้ทราบถึงการเปลี่ยนแปลงเพิ่ม / ลบใด ๆ ในแหล่งที่มา ทำไมฉันต้องเลือกข้อใดข้อหนึ่งต่อไปนี้ ObservableCollection<Employee> lstEmp = new ObservableCollection<Employee>(); หรือ BindingList<Employee> lstEmp = new BindingList<Employee>();

23
การจัดการกล่องโต้ตอบใน WPF ด้วย MVVM
ในรูปแบบ MVVM สำหรับ WPF การจัดการไดอะล็อกเป็นหนึ่งในการดำเนินการที่ซับซ้อนมากขึ้น เนื่องจากโมเดลการดูของคุณไม่ทราบอะไรเกี่ยวกับมุมมองการสื่อสารในกล่องโต้ตอบจึงน่าสนใจ ฉันสามารถแสดงให้เห็นICommandว่าเมื่อมุมมองเรียกมันโต้ตอบสามารถปรากฏขึ้น ไม่มีใครรู้วิธีที่ดีในการจัดการผลลัพธ์จากการโต้ตอบ? MessageBoxฉันกำลังพูดเกี่ยวกับหน้าต่างไดอะล็อกเช่น อีกวิธีหนึ่งที่เราทำคือมีเหตุการณ์ใน viewmodel ที่มุมมองจะสมัครเมื่อต้องการไดอะล็อก public event EventHandler<MyDeleteArgs> RequiresDeleteDialog; ไม่เป็นไร แต่หมายความว่ามุมมองต้องใช้รหัสซึ่งเป็นสิ่งที่ฉันต้องการหลีกเลี่ยง

13
ฉันควรใช้กรอบการทำงานใดสำหรับ MVVM [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันกำลังพัฒนาแอปพลิเคชันด้วยโมเดล MVVM แต่ฉันมาถึงจุดที่ฉันต้องเลือกกรอบการทำงานที่จะใช้ ตัวเลือกที่เป็นไปได้คือ: ชุดเครื่องมือ MVVM มูลนิธิ MVVM WPF Application Framework (WAF) ไฟ MVVM Caliburn ของแน่นอน ปริซึม ReactiveUI จากประสบการณ์ของคุณไหนดีกว่ากัน?
233 wpf  mvvm  frameworks 

30
วิธีการเลือกข้อความทั้งหมดที่มุ่งเน้นใน WPF TextBox โดยอัตโนมัติ?
ถ้าฉันโทรSelectAllจากGotFocusตัวจัดการเหตุการณ์มันไม่สามารถใช้งานได้กับเมาส์ - การเลือกจะหายไปทันทีที่ปล่อยเมาส์ แก้ไข: ผู้คนชื่นชอบคำตอบของ Donnelle ฉันจะพยายามอธิบายว่าทำไมฉันถึงไม่ชอบเท่าคำตอบที่ยอมรับ มันซับซ้อนกว่าในขณะที่คำตอบที่ยอมรับจะทำสิ่งเดียวกันในวิธีที่ง่ายกว่า การใช้งานของคำตอบที่ยอมรับได้ดีกว่า เมื่อคุณคลิกที่ตรงกลางข้อความจะไม่ได้รับการเลือกเมื่อคุณปล่อยเมาส์เพื่อให้คุณสามารถเริ่มแก้ไขได้ทันทีและหากคุณยังคงต้องการเลือกทั้งหมดเพียงแค่กดปุ่มอีกครั้ง ตามสูตรของ Donelle ถ้าฉันคลิกตรงกลางข้อความฉันต้องคลิกครั้งที่สองเพื่อให้สามารถแก้ไขได้ หากฉันคลิกที่ใดที่หนึ่งในข้อความเมื่อเทียบกับด้านนอกของข้อความนี่อาจหมายถึงฉันต้องการเริ่มแก้ไขแทนที่จะเขียนทับทุกอย่าง
232 .net  wpf  silverlight  textbox 

5
ง่าย (ฉันคิดว่า) เส้นแนวนอนใน WPF?
การสร้างแบบฟอร์มการป้อนข้อมูลที่ค่อนข้างง่ายและต้องการแยกส่วนที่แน่นอนด้วยเส้นแนวนอน (ไม่เหมือนกับแท็ก HR ใน HTML) ที่ขยายความยาวทั้งหมดของแบบฟอร์ม ฉันได้ลองสิ่งนี้แล้ว: <Line Stretch="Fill" Stroke="Black" X2="1"/> เนื่องจากตัวควบคุมหลักไม่ใช่ความกว้างคงที่บรรทัดนี้ทำให้หน้าต่างขยายเป็นความกว้างเต็มของหน้าจอ มีวิธีง่ายๆในการทำเช่นนี้หรือไม่โดยไม่กำหนดความกว้างของตัวควบคุม / หน้าต่างหลัก?
228 wpf  xaml  wpf-controls 

17
การจัดแนวข้อความใน WPF TextBlock
ฉันจะกำหนดการจัดแนวกึ่งกลางแนวตั้งให้กับข้อความภายใน TextBlock ได้อย่างไร ฉันพบคุณสมบัติ TextAlignment แต่สำหรับการจัดแนวข้อความแนวนอน ฉันจะจัดแนวข้อความในแนวตั้งได้อย่างไร


15
มีวิธีใดในการเลือกบล็อกข้อความ WPF
ฉันต้องการสร้างข้อความที่แสดงในWittyซึ่งเป็นไคลเอนต์ Twitter แบบโอเพ่นซอร์สซึ่งสามารถเลือกได้ มันจะปรากฏขึ้นในขณะนี้โดยใช้บล็อกข้อความที่กำหนดเอง ฉันต้องใช้ TextBlock เพราะฉันทำงานกับ inline ของ textblock เพื่อแสดงและจัดรูปแบบ @ ชื่อผู้ใช้และลิงก์เป็นไฮเปอร์ลิงก์ คำขอที่พบบ่อยคือสามารถคัดลอกข้อความได้ เพื่อที่จะทำอย่างนั้นฉันต้องทำให้ TextBlock สามารถเลือกได้ ฉันพยายามทำให้มันใช้งานได้โดยการแสดงข้อความโดยใช้กล่องข้อความแบบอ่านอย่างเดียวมีสไตล์คล้ายกับบล็อคข้อความ แต่มันจะไม่ทำงานในกรณีของฉันเพราะกล่องข้อความไม่มีอินไลน์ กล่าวอีกนัยหนึ่งฉันไม่สามารถจัดรูปแบบหรือจัดรูปแบบข้อความภายในกล่องข้อความแต่ละรายการอย่างที่ฉันสามารถทำได้ด้วย TextBlock ความคิดใด ๆ
224 wpf  xaml  textbox  textblock 

4
Window Height =“ อัตโนมัติ” ไม่ทำงานอย่างที่คาดไว้
สิ่งที่ฉันพยายามทำคือแสดงหน้าต่างที่ไม่มีความสูง / ความกว้างอย่างชัดเจน (ค่าทั้งสองถูกละไว้หรือตั้งค่าเป็นAuto) ฉันเดาว่าหน้าต่างจะหาขนาดของมันโดยอัตโนมัติ - คำนวณขนาดการควบคุมผู้ใช้ทั้งหมดที่มี แต่สิ่งนี้ไม่ได้ผลจริง! แต่ฉันได้รับหน้าต่างบานใหญ่ActualwidthและActualheightตั้งค่าเป็น 512 (?!?!) ประกาศหน้าต่าง: <Window x:Class="Window3" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window3" Height="Auto"> <StackPanel> <Label>Window</Label> </StackPanel> </Window> แสดงหน้าต่างนี้เป็นกล่องโต้ตอบผ่าน: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click Dim dlg As New Window3 dlg.ShowDialog() End Sub มีวิธีแก้ปัญหาสำหรับเรื่องนี้หรือไม่? ฉันไม่ต้องการกำหนดขนาดของหน้าต่างของฉันอย่างชัดเจนเนื่องจากตัวควบคุมหลายตัวในแบบฟอร์มจะถูกยุบตามพารามิเตอร์ตัวสร้างและการพยายามหาขนาดที่แท้จริงของแบบฟอร์มจะยุ่งยาก (และน่าเกลียด)
223 wpf 

10
โหลด WPF BitmapImage จาก System.Drawing.Bitmap
ผมมีตัวอย่างของหนึ่งSystem.Drawing.Bitmapและต้องการที่จะทำให้มันใช้ได้กับแอป WPF System.Windows.Media.Imaging.BitmapImageของฉันในรูปแบบของ อะไรจะเป็นวิธีที่ดีที่สุดสำหรับสิ่งนี้?
223 c#  wpf  bitmap 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.