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

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

5
Window vs Page vs UserControl สำหรับการนำทาง WPF?
ขณะนี้ฉันกำลังเขียนแอปพลิเคชันบนเดสก์ท็อป แต่ดูเหมือนจะไม่ได้รู้ว่าจะใช้อะไรเมื่อเปลี่ยนเส้นทางบางคนไปยังส่วนใหม่ของแอปพลิเคชัน ตัวเลือกของฉันดูเหมือนจะเป็น หน้าต่าง หน้า UserControl แต่ฉันไม่เข้าใจความแตกต่างระหว่างพวกเขาคืออะไรและเมื่อใดที่ฉันควรใช้แต่ละคน มีใครช่วยอธิบายความแตกต่างให้ฉันบ้างและยกตัวอย่างสถานการณ์ที่คุณอาจใช้แต่ละสถานการณ์
192 c#  wpf 

12
WPF และโฟกัสเริ่มต้น
ดูเหมือนว่าเมื่อแอปพลิเคชั่น WPF เริ่มต้นขึ้นจะไม่มีสิ่งใดโฟกัส นี่มันแปลกจริงๆ เฟรมเวิร์กอื่น ๆ ที่ฉันเคยใช้ทำตามที่คุณคาดไว้: วางโฟกัสเริ่มต้นที่คอนโทรลแรกในลำดับแท็บ แต่ฉันยืนยันว่าเป็น WPF ไม่ใช่แค่แอปของฉัน - ถ้าฉันสร้างหน้าต่างใหม่และเพิ่งวางกล่องข้อความไว้และเรียกใช้แอปกล่องข้อความจะไม่มีโฟกัสจนกว่าฉันจะคลิกหรือกด Tab . yuck แอปจริงของฉันซับซ้อนกว่ากล่องข้อความ ฉันมี UserControls หลายชั้นภายใน UserControls หนึ่งใน UserControls นั้นมีตัวจัดการ Focusable = "True" และ KeyDown / KeyUp และฉันต้องการให้โฟกัสนั้นทันทีที่หน้าต่างเปิดขึ้น อย่างไรก็ตามฉันยังเป็นสามเณร WPF อยู่บ้างและฉันไม่มีโชคมากที่คิดวิธีการทำเช่นนี้ หากฉันเริ่มแอพแล้วกดปุ่ม Tab จากนั้นโฟกัสจะไปที่การควบคุมที่สามารถโฟกัสได้ของฉันและมันก็จะเริ่มทำงานตามที่ฉันต้องการ แต่ฉันไม่ต้องการให้ผู้ใช้กด Tab ก่อนจึงจะสามารถใช้งานหน้าต่างได้ ฉันเล่นด้วย FocusManager.FocusedElement แต่ฉันไม่แน่ใจว่าตัวควบคุมใดที่จะตั้งไว้บน (หน้าต่างระดับบนสุด - พาเรนต์ที่มีตัวควบคุมที่โฟกัสได้หรือตัวควบคุมที่ปรับโฟกัสได้) หรือสิ่งที่จะตั้งค่า ฉันต้องทำอย่างไรเพื่อให้การควบคุมที่ซ้อนกันของฉันมีจุดเริ่มต้นทันทีที่หน้าต่างเปิดขึ้น หรือดีกว่าเพื่อเน้นการควบคุมที่สามารถโฟกัสได้อันดับแรกในลำดับแท็บ
191 wpf  focus 

2
เปิดกล่องโต้ตอบไฟล์และเลือกไฟล์โดยใช้การควบคุม WPF และ C #
ฉันมีTextBoxชื่อtextbox1และชื่อButton button1เมื่อฉันคลิกที่button1ฉันต้องการเรียกดูไฟล์ของฉันเพื่อค้นหาไฟล์ภาพเท่านั้น (พิมพ์ jpg, png, bmp ... ) และเมื่อฉันเลือกไฟล์รูปภาพและคลิกตกลงในกล่องโต้ตอบไฟล์ฉันต้องการให้ไดเรกทอรีไฟล์ถูกเขียนในtextbox1.textลักษณะนี้: textbox1.Text = "C:\myfolder\myimage.jpg"


10
ฉันจะเว้นวรรคองค์ประกอบย่อยของ StackPanel ได้อย่างไร
รับ StackPanel: <StackPanel> <TextBox Height="30">Apple</TextBox> <TextBox Height="80">Banana</TextBox> <TextBox Height="120">Cherry</TextBox> </StackPanel> อะไรคือวิธีที่ดีที่สุดในการจัดวางองค์ประกอบของเด็กเพื่อให้มีช่องว่างขนาดเท่ากันระหว่างทั้งสองแม้ว่าองค์ประกอบของเด็กจะมีขนาดต่างกัน สามารถทำได้โดยไม่ตั้งค่าคุณสมบัติสำหรับเด็กแต่ละคนหรือไม่

12
การควบคุมแผนภูมิ WPF [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามดังนั้นตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังมองหาแผนภูมิ WPF ที่ง่ายมากซึ่งควรมีกราฟ 2D และควรมีระบบแพนและซูม
186 c#  wpf  charts 

17
WPF User Control Parent
ฉันมีการควบคุมผู้ใช้ที่ฉันโหลดลงในMainWindowat runtime UserControlฉันไม่สามารถได้รับการจัดการในหน้าต่างที่มีจาก ฉันได้ลองthis.Parentแล้ว แต่มันก็ว่างเสมอ ไม่มีใครรู้วิธีการจัดการกับหน้าต่างที่มีจากการควบคุมผู้ใช้ใน WPF? นี่คือวิธีโหลดตัวควบคุม: private void XMLLogViewer_MenuItem_Click(object sender, RoutedEventArgs e) { MenuItem application = sender as MenuItem; string parameter = application.CommandParameter as string; string controlName = parameter; if (uxPanel.Children.Count == 0) { System.Runtime.Remoting.ObjectHandle instance = Activator.CreateInstance(Assembly.GetExecutingAssembly().FullName, controlName); UserControl control = instance.Unwrap() as UserControl; this.LoadControl(control); } } …
183 c#  .net  wpf 

4
ผูก WPF ComboBox ไปยังรายการที่กำหนดเอง
ฉันมี ComboBox ที่ดูเหมือนจะไม่อัพเดทค่า SelectedItem / SelectedValue ComboBox ItemsSource ถูกผูกไว้กับคุณสมบัติบนคลาส ViewModel ที่แสดงรายการสมุดโทรศัพท์ RAS จำนวนมากเป็น CollectionView จากนั้นฉันได้ผูก (ในเวลาที่แยกต่างหาก) ทั้งคุณสมบัติSelectedItemหรือSelectedValueไปยังคุณสมบัติอื่นของ ViewModel ฉันได้เพิ่ม MessageBox ลงในคำสั่งบันทึกเพื่อตรวจแก้จุดบกพร่องค่าที่กำหนดโดย databinding แต่ไม่มีการตั้งค่าSelectedItem/ การSelectedValueผูก คลาส ViewModel มีลักษณะดังนี้: public ConnectionViewModel { private readonly CollectionView _phonebookEntries; private string _phonebookeEntry; public CollectionView PhonebookEntries { get { return _phonebookEntries; } } public string PhonebookEntry …
183 c#  wpf  data-binding  mvvm  combobox 


20
คำถามสัมภาษณ์: ผู้พัฒนา WPF [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน8 ปีที่ผ่านมา ปรับปรุงคำถามนี้ นักพัฒนา WPF ทุกคนควรรู้อะไร ระดับเริ่มต้น พื้นหลังที่แข็งแกร่ง. NET 2.0 และยินดีที่จะเรียนรู้! อธิบายคุณสมบัติการพึ่งพา? สไตล์อะไร แม่แบบคืออะไร ผูกพัน ความแตกต่างระหว่างคลาสพื้นฐาน: Visual, UIElement, FrameworkElement, Control Visual เทียบกับต้นไม้ตรรกะ? การแจ้งเตือนการเปลี่ยนแปลงคุณสมบัติ (INotifyPropertyChange และ ObservableCollection) ResourceDictionary - เพิ่มโดย a7an UserControls - เพิ่มโดย a7an ความแตกต่างระหว่างกลยุทธ์การกำหนดเส้นทางฟองและอุโมงค์ - เพิ่มโดย Carlo เหตุใด Microsoft จึงแนะนำภาษามาร์กอัปอีกภาษาหนึ่ง XAML ระดับกลาง …
182 .net  wpf 

18
วิธีการผูก enum กับตัวควบคุม combobox ใน WPF?
ฉันพยายามหาตัวอย่างง่ายๆที่แสดง enums ตามที่เป็นอยู่ ตัวอย่างทั้งหมดที่ฉันได้เห็นพยายามที่จะเพิ่มสตริงการแสดงที่ดูดี แต่ฉันไม่ต้องการความซับซ้อนนั้น โดยทั่วไปฉันมีคลาสที่มีคุณสมบัติทั้งหมดที่ฉันผูกโดยตั้งค่า DataContext เป็นคลาสนี้ก่อนจากนั้นระบุการโยงเช่นนี้ในไฟล์ xaml: <ComboBox ItemsSource="{Binding Path=EffectStyle}"/> แต่สิ่งนี้จะไม่แสดงค่า enum ในComboBoxรายการเป็น
182 c#  .net  wpf  xaml  data-binding 

4
การส่งผ่านค่า enum เป็นพารามิเตอร์คำสั่งจาก XAML
ฉันต้องการส่งผ่านค่า enum เป็นพารามิเตอร์คำสั่งใน WPF โดยใช้สิ่งนี้: <Button x:Name="uxSearchButton" Command="{Binding Path=SearchMembersCommand}" CommandParameter="SearchPageType.First" Content="Search"> </Button> SearchPageType เป็น enum และนี่คือการรู้ว่าคำสั่งค้นหาปุ่มใดถูกเรียก เป็นไปได้ใน WPF หรือคุณจะส่งค่า enum เป็นพารามิเตอร์คำสั่งได้อย่างไร
182 .net  wpf  silverlight  xaml  command 

4
วิธีใช้ WPF Background Worker
ในแอปพลิเคชันของฉันฉันต้องดำเนินการขั้นตอนการกำหนดค่าเริ่มต้นใช้เวลาดำเนินการประมาณ 7-8 วินาทีในการที่ UI ของฉันไม่ตอบสนอง ในการแก้ไขปัญหานี้ฉันทำการเริ่มต้นในเธรดแยกต่างหาก public void Initialization() { Thread initThread = new Thread(new ThreadStart(InitializationThread)); initThread.Start(); } public void InitializationThread() { outputMessage("Initializing..."); //DO INITIALIZATION outputMessage("Initialization Complete"); } ฉันได้อ่านบทความเกี่ยวกับBackgroundWorkerและควรอนุญาตให้แอปพลิเคชันของฉันตอบสนองได้อย่างไรโดยไม่ต้องเขียนเธรดเพื่อทำงานที่มีความยาว แต่ฉันไม่เคยประสบความสำเร็จในการพยายามติดตั้งใช้งาน สิ่งนี้ใช้BackgroundWorker?


7
เธรดการโทรต้องเป็น STA เนื่องจากส่วนประกอบ UI จำนวนมากต้องการสิ่งนี้
ฉันใช้http://www.codeproject.com/KB/IP/Facebook_API.aspx ฉันพยายามที่จะเรียกXAMLซึ่งสร้างขึ้นโดยใช้WPF แต่มันทำให้ฉันมีข้อผิดพลาด: เธรดการโทรต้องเป็น STA เนื่องจากส่วนประกอบ UI จำนวนมากต้องการสิ่งนี้ ผมไม่ทราบว่าจะทำอย่างไร. ฉันพยายามทำสิ่งนี้: FacebookApplication.FacebookFriendsList ffl = new FacebookFriendsList(); แต่มันทำให้ฉันมีข้อผิดพลาด ฉันเพิ่มผู้ทำงานเบื้องหลัง: static BackgroundWorker bw = new BackgroundWorker(); static void Main(string[] args) { bw.DoWork += bw_DoWork; bw.RunWorkerAsync("Message to worker"); Console.ReadLine(); } static void bw_DoWork(object sender, DoWorkEventArgs e) { // This is called on the worker …

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