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

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

5
ความแตกต่างระหว่าง SelectedItem, SelectedValue และ SelectedValuePath
ความแตกต่างระหว่างสิ่งต่อไปนี้คืออะไร: SelectedItem SelectedValue SelectedValuePath คุณสมบัติการพึ่งพาเหล่านี้ทั้งหมดถูกกำหนดในคลาสSelector ฉันมักจะสับสนSelectedItemกับSelectedValueและกับSelectedValueSelectedValuePath ผมอยากจะทราบความแตกต่างระหว่างพวกเขาและเมื่อเราจะใช้พวกเขาโดยเฉพาะอย่างยิ่งและSelectedValue SelectedValuePathโปรดอธิบายการใช้ของพวกเขาด้วยตัวอย่างง่ายๆ

13
เธรดการโทรไม่สามารถเข้าถึงวัตถุนี้ได้เนื่องจากเธรดอื่นเป็นเจ้าของ
รหัสของฉันเป็นดังนี้ public CountryStandards() { InitializeComponent(); try { FillPageControls(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Country Standards", MessageBoxButton.OK, MessageBoxImage.Error); } } /// <summary> /// Fills the page controls. /// </summary> private void FillPageControls() { popUpProgressBar.IsOpen = true; lblProgress.Content = "Loading. Please wait..."; progress.IsIndeterminate = true; worker = new BackgroundWorker(); worker.DoWork += …

10
แถบเลื่อนแนวตั้งอัตโนมัติใน WPF TextBlock?
ฉันมีTextBlockใน WPF ฉันเขียนหลายบรรทัดลงไปเกินความสูงในแนวตั้ง ฉันคาดว่าแถบเลื่อนแนวตั้งจะปรากฏขึ้นโดยอัตโนมัติเมื่อสิ่งนั้นเกิดขึ้น แต่ก็ไม่ได้ ฉันพยายามค้นหาคุณสมบัติแถบเลื่อนในบานหน้าต่างคุณสมบัติ แต่ไม่พบ ฉันจะสร้างแถบเลื่อนแนวตั้งอัตโนมัติได้อย่างไรTextBlockเมื่อเนื้อหามีความสูงเกิน การชี้แจง: ฉันอยากทำจากนักออกแบบไม่ใช่เขียนโดยตรงไปที่ XAML
336 c#  .net  wpf  scrollbar  textblock 

30
ฉันจะรับกล่องข้อความเพื่อรับเฉพาะอินพุตที่เป็นตัวเลขใน WPF ได้อย่างไร
ฉันกำลังมองหาที่จะยอมรับตัวเลขและจุดทศนิยม แต่ไม่มีสัญญาณ ฉันมองไปที่กลุ่มตัวอย่างใช้การควบคุม NumericUpDown สำหรับ Windows แบบฟอร์มและตัวอย่างของการควบคุม NumericUpDown ที่กำหนดเองจากไมโครซอฟท์นี้ แต่จนถึงตอนนี้ดูเหมือนว่า NumericUpDown (รองรับโดย WPF หรือไม่) จะไม่ให้ฟังก์ชั่นที่ฉันต้องการ วิธีการออกแบบแอปพลิเคชันของฉันไม่มีใครในใจที่ถูกต้องจะไปยุ่งกับลูกศร พวกเขาไม่สมเหตุสมผลในบริบทของใบสมัครของฉัน ดังนั้นฉันกำลังมองหาวิธีง่ายๆในการสร้างกล่องข้อความ WPF มาตรฐานยอมรับเฉพาะอักขระที่ฉันต้องการ เป็นไปได้ไหม มันใช้งานได้จริงหรือ
335 c#  wpf  xaml  textbox  numericupdown 

17
การตั้งค่าแหล่งรูปภาพ WPF ในรหัส
ฉันกำลังพยายามตั้งค่าซอร์สของอิมเมจ WPF ในโค้ด รูปภาพถูกฝังเป็นทรัพยากรในโครงการ โดยดูที่ตัวอย่างฉันมาด้วยรหัสด้านล่าง ด้วยเหตุผลบางอย่างมันไม่ทำงาน - ภาพไม่ปรากฏขึ้น ด้วยการแก้ไขข้อบกพร่องฉันจะเห็นว่าสตรีมมีข้อมูลภาพ แล้วมีอะไรผิดปกติ? Assembly asm = Assembly.GetExecutingAssembly(); Stream iconStream = asm.GetManifestResourceStream("SomeImage.png"); PngBitmapDecoder iconDecoder = new PngBitmapDecoder(iconStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); ImageSource iconSource = iconDecoder.Frames[0]; _icon.Source = iconSource; ไอคอนถูกกำหนดบางอย่างดังนี้: <Image x:Name="_icon" Width="16" Height="16" />
325 c#  .net  wpf  image 

1
กล่องรายการเทียบกับ ListView - วิธีเลือกการผูกข้อมูล
ฉันกำลังพิจารณา ListBox หรือ ListView สำหรับแอปพลิเคชัน WPF ดูเหมือนว่าสนับสนุนการเชื่อมโยงข้อมูลและแม่แบบรายการ แอปพลิเคชันของฉันมีรายการง่าย ๆ ที่ฉันต้องการค้นหา / จัดเรียง / กรองตามการป้อนข้อมูลของผู้ใช้ ตัวอย่างการผูกข้อมูล ( http://msdn.microsoft.com/en-us/library/ms771319.aspx ) ใช้กล่องรายการที่มี CollectionViewSource ใครบ้างมีข้อดี / ข้อเสียสำหรับการควบคุมที่จะใช้และเมื่อใด

4
วิธีรับการควบคุมใน WPF เพื่อเติมพื้นที่ว่าง?
ตัวควบคุม WPF บางตัว (เช่นButton) ดูเหมือนว่าจะใช้พื้นที่ทั้งหมดที่มีอยู่อย่างมีความสุขใน 'คอนเทนเนอร์ถ้าคุณไม่ระบุความสูงที่ต้องการ และบางอย่างเช่นสิ่งที่ฉันต้องการใช้ตอนนี้ (multiline) TextBoxและสิ่งที่ListBoxดูเหมือนเป็นห่วงมากขึ้นเกี่ยวกับการใช้พื้นที่ที่จำเป็นเพื่อให้พอดีกับเนื้อหาของพวกเขาและไม่มีอีกต่อไป หากคุณใส่พวกนี้ไว้ในเซลล์UniformGridพวกมันจะขยายให้พอดีกับพื้นที่ว่าง อย่างไรก็ตามUniformGridอินสแตนซ์ไม่เหมาะกับทุกสถานการณ์ ถ้าคุณมีตารางที่มีแถวบางแถวตั้งค่าเป็นความสูง * เพื่อหารความสูงระหว่างตัวเองกับแถว * อื่น ๆ ถ้าคุณมี a StackPanelและ a Label, a Listและ a Buttonคุณจะได้รับรายการเพื่อใช้พื้นที่ทั้งหมดที่ไม่ได้กินโดยฉลากและปุ่มได้อย่างไร ฉันจะคิดว่านี่มันจะเป็นรูปแบบความต้องการขั้นพื้นฐาน แต่ฉันไม่สามารถคิดออกว่าจะได้รับพวกเขาที่จะเติมช่องว่างที่พวกเขาจะ (วางพวกเขาในDockPanelและการตั้งค่าเพื่อเติมเต็มยังไม่ได้ทำงานก็ดูเหมือนว่าตั้งแต่DockPanelใช้เวลาเพียงพื้นที่ที่จำเป็นโดย subcontrols ของมัน) ปรับขนาด GUI จะน่ากลัวมากถ้าคุณต้องเล่นกับHeight, Width, MinHeight, MinWidthฯลฯ คุณสามารถผูกHeightและWidthคุณสมบัติของคุณกับเซลล์กริดที่คุณครอบครอง? หรือมีวิธีอื่นในการทำเช่นนี้?


13
เปิดไดอะล็อกไดเร็กทอรี
ฉันต้องการให้ผู้ใช้เลือกไดเรกทอรีที่ไฟล์ที่ฉันจะสร้างจะถูกบันทึกไว้ ฉันรู้ว่าใน WPF ฉันควรใช้OpenFileDialogจาก Win32 แต่น่าเสียดายที่กล่องโต้ตอบต้องมีการเลือกไฟล์ - มันยังคงเปิดอยู่ถ้าฉันคลิกตกลงโดยไม่เลือก ฉันสามารถ "แฮ็กอัพ" ฟังก์ชั่นโดยให้ผู้ใช้เลือกไฟล์จากนั้นตัดเส้นทางเพื่อหาว่าไดเรกทอรีอยู่ในไฟล์ไหน แต่ไม่ได้ใช้งานง่ายที่สุด มีใครเห็นสิ่งนี้ทำมาก่อนหรือไม่
274 wpf  filesystems  dialog 



13
Databinding คุณสมบัติ enum เป็น ComboBox ใน WPF
เป็นตัวอย่างใช้รหัสต่อไปนี้: public enum ExampleEnum { FooBar, BarFoo } public class ExampleClass : INotifyPropertyChanged { private ExampleEnum example; public ExampleEnum ExampleProperty { get { return example; } { /* set and notify */; } } } ฉันต้องการที่จะ databind คุณสมบัติ ExampleProperty ไปยัง ComboBox เพื่อที่จะแสดงตัวเลือก "FooBar" และ "BarFoo" และทำงานในโหมด TwoWay อย่างดีที่สุดฉันต้องการคำนิยาม ComboBox ของฉันที่จะมีลักษณะเช่นนี้: …
256 .net  wpf 

10
ฉันจะตัดข้อความในฉลากโดยใช้ WPF ได้อย่างไร
ฉันมีTextBoxและฉลาก หลังจากคลิกปุ่มฉันรันโค้ดต่อไปนี้: label1.Content = textbox1.Text; คำถามของฉันคือฉันจะเปิดใช้งานการตัดข้อความของฉลากได้อย่างไร อาจมีข้อความมากเกินไปที่จะแสดงในหนึ่งบรรทัดและฉันต้องการให้ตัดเป็นหลายบรรทัดโดยอัตโนมัติหากเป็นเช่นนั้น
251 c#  .net  wpf  label  word-wrap 

30
วิธีการผูกกับ PasswordBox ใน MVVM
asswordBoxฉันได้เจอปัญหากับการผูกกับระดับ P ดูเหมือนว่าจะมีความเสี่ยงด้านความปลอดภัย แต่ฉันใช้รูปแบบ MVVM ดังนั้นฉันต้องการหลีกเลี่ยงสิ่งนี้ ฉันพบรหัสที่น่าสนใจที่นี่ (มีใครใช้สิ่งนี้หรือคล้ายกัน?) http://www.wpftutorial.net/PasswordBox.html ในทางเทคนิคมันดูดี แต่ฉันไม่แน่ใจว่าจะดึงรหัสผ่านได้อย่างไร ฉันเป็นพื้นมีคุณสมบัติในของฉันLoginViewModelสำหรับและUsername เป็นเรื่องปกติและใช้งานได้ดีPasswordUsernameTextBox ฉันใช้รหัสด้านบนตามที่ระบุและป้อนสิ่งนี้ <PasswordBox ff:PasswordHelper.Attach="True" ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/> เมื่อฉันมีการPasswordBoxเป็นTextBoxและBinding Path=Passwordจากนั้นคุณสมบัติในของฉันLoginViewModelถูกปรับปรุง รหัสของฉันเป็นเรื่องง่ายมากโดยทั่วไปฉันมีสำหรับฉันCommand Buttonเมื่อผมกดมันจะเรียกว่าและถ้ามันกลับจริงที่เรียกว่าCanLogin คุณสามารถเห็นฉันตรวจสอบคุณสมบัติของฉันที่นี่ซึ่งใช้งานได้ดีLoginUsername ในLoginฉันส่งไปพร้อมกับการบริการของฉันUsernameและPassword, Usernameมีข้อมูลจากฉันViewแต่Passwordเป็นNull|Empty private DelegateCommand loginCommand; public string Username { get; set; } public string Password { get; set; } public ICommand LoginCommand { get { if …
251 c#  wpf  mvvm  wpf-controls  passwords 

26
ViewModel ควรปิดแบบฟอร์มอย่างไร
ฉันพยายามที่จะเรียนรู้ WPF และปัญหา MVVM แต่มีอุปสรรค คำถามนี้คล้ายกัน แต่ไม่เหมือนกันกับคำถามนี้ (การจัดการไดอะล็อก -in-wpf-with-mvvm) ... ฉันมีแบบฟอร์ม "เข้าสู่ระบบ" ที่เขียนโดยใช้รูปแบบ MVVM แบบฟอร์มนี้มี ViewModel ซึ่งเก็บชื่อผู้ใช้และรหัสผ่านซึ่งถูกผูกไว้กับมุมมองใน XAML โดยใช้การเชื่อมโยงข้อมูลปกติ นอกจากนี้ยังมีคำสั่ง "เข้าสู่ระบบ" ซึ่งถูกผูกไว้กับปุ่ม "เข้าสู่ระบบ" บนแบบฟอร์ม agan ใช้ databinding ปกติ เมื่อคำสั่ง "ลงชื่อเข้าใช้" เริ่มทำงานจะเรียกใช้ฟังก์ชันใน ViewModel ซึ่งจะดับและส่งข้อมูลผ่านเครือข่ายเพื่อเข้าสู่ระบบเมื่อฟังก์ชันนี้เสร็จสมบูรณ์มีการดำเนินการ 2 รายการ: การเข้าสู่ระบบไม่ถูกต้อง - เราเพิ่งแสดงกล่องข้อความและทุกอย่างเรียบร้อย การเข้าสู่ระบบนั้นถูกต้องเราต้องปิดแบบฟอร์มการเข้าสู่ระบบและให้มันกลับมาจริงเพราะDialogResult... ปัญหาคือ ViewModel ไม่รู้อะไรเกี่ยวกับมุมมองจริงดังนั้นจะปิดมุมมองอย่างไรและบอกให้ส่งคืน DialogResult ที่เฉพาะเจาะจงได้อย่างไร ฉันสามารถติดโค้ดบางอย่างใน CodeBehind และ / หรือส่งมุมมองผ่านไปยัง ViewModel …
247 c#  wpf  mvvm 

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